shell執行 shell多程序執行

2021-10-19 05:50:22 字數 1158 閱讀 1926

shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。

cat test.txt | grep abc > abc.txt &   #將test.txt所有包含abc的行提取到abc.txt中
多個處理都這樣來做,即可完成多程序並行執行,下面先來看序列執行的邏輯

#!/bin/bash

for i in `seq 1 10`

do echo $i

sleep 1

done

執行後每隔一秒執行一次,大概10s執行完成。

執行語句後加上 &即可提交後台程序執行

#!/bin/bash

for i in `seq 1 10`

do &

done

wait

echo "等待所有程序執行完成"

並行執行,1s左右即可完成

如果希望序列與並行同時存在,可按如下方式採用兩層for迴圈進行:

#!/bin/bash

for i in `seq 1 10`

do for j in `seq 1 5`do&

done

wait

echo "等待所有程序執行完成, $i"

done

如果返回的內容過多,可以在執行語句之後加上1>/dev/null 2>/dev/null將標準輸出與標準錯誤輸到黑洞

for i in `seq 1 10`

do for j in `seq 1 5`

do1>/dev/null 2>/dev/null &

done

wait

echo "等待所有程序執行完成, round $i"

done

shell多程序執行

shell在linux中,是使用者和kernel溝通的橋梁,採用c編寫,既是一種命令語言,也是一種解釋型指令碼語言,我們常寫的ls,grep就是基本的shell命令。shell指令碼是將要執行的命令按一定順序寫成的乙個文字檔案,最近遇到乙個需求,要將一定數量的命令快速執行,而每次執行都需要一定的時間...

shell檔案中,多程序執行

一直苦惱乙個問題 shell程式設計中,當乙個任務完成時,接下來可以同時有兩個任務可以執行,這兩個任務互不影響。所以想當第乙個任務完成後,同時啟動後面的兩個任務,不知到shell中如何同時啟動。今天解決了 使用後台執行的方式 舉個例子說明比較好。有乙個總執行的all.sh,有三個任務shell,分別...

shell 併發多程序同時執行

shell 併發多程序同時執行 複製 1 bin bash 2 3 send thread num 13 設定程序數。4 tmp fifofile tmp fifo 指令碼執行的當前程序id號作為檔名 5 mkfifo tmp fifofile 新建乙個隨機fifo管道檔案 6 exec 6 tmp...