【Shell】Shell腳本併發與調試

Bash Shell實現併發多進程操作

Shell腳本里實現併發操作,需要用到

  • for循環
  • &後臺運行符
  • wait等待所有子進程結束

思路:
我們可以通過寫一個for循環,控制每次需要批量操作的次數,然後封裝一個方法,方法裏進行批量操作,並將此方法用&符號放在後臺運行,每個循環結束前用wait函數,確保當前批量處理操作全部完成


普通腳本

#!/bin/bash
for ((i=0;i<5;i++));do
{
sleep 1;echo 1>>aa && echo ”done!”
}
done
cat aa|wc -l
rm aa

併發執行腳本

#!/bin/bash
for ((i=0;i<5;i++));do
{
sleep 3;echo 1>>aa && echo ”done!”
} &
done
wait
cat aa|wc -l
rm aa

參考:https://blog.csdn.net/wzy_1988/article/details/8811153
參考:http://bbs.51cto.com/thread-1104907-1-1.html


 Shell調試腳本:

  • 使用set命令調試部分腳本內容

set命令常用的調試選項:

set -n :讀取命令單並不執行
set -v :顯示讀取的所有行
set -x :顯示所有命令及其參數

提示:通過set -x 命令開啓調試功能,而通過set +x 關閉調試功能

 

  • 使用sh -nvx

sh [-nvx] xxx.sh

參數說明:

-n:不會執行該腳本,僅查詢腳本語法是否有問題,並給出錯誤提示
-v:在執行腳本時,先將腳本的內容輸出到屏幕上,然後執行腳本。如果有錯誤,也會給出錯誤提示。
-x:將執行的腳本內容及輸出顯示到屏幕上,這是對調試很有用的參數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章