[20210418]開啟多個程式執行.txt

lfree發表於2021-04-18

[20210418]開啟多個程式執行.txt

--//昨天看連結,我發現對方並行使
--//用for迴圈編寫,我知道xargs -P 開啟並行後,基本就是seq xargs來實現。
--//連結的寫法:
for n in $(1 200) do; ysqlsh -h localhost -p 6432 -c "select pg_sleep(60);" & done
--//我一般的寫法例子:
$ seq 150 | xargs -I{} -P 150 sqlplus -s -l scott/book @m10.txt 2e5 p1full=150 {} >/dev/null

--//我測試對方的方法遇到一些問題,就是加入&放入後臺與分號的問題。

$ for n in {1..4}  ; do  echo $n; done
1
2
3
4
--//注我不知道為什麼我的bash 版本不能寫in $(1 200)。

--//如果寫成
$ for n in {1..4}  ; do  echo $n done
>
--//彈出一個> ,無法執行,而且我感覺原連結do後面加入分號好像也不對,估計是筆誤,分號只能寫在do之前。

$ for n in {1..4}   do;  echo $n ;done
-bash: syntax error near unexpected token `echo'

--//實際上讓我困惑的是如果放入後臺使用 & ,無法使用分號。

$ for n in {1..4} ; do  echo $n & ;done
-bash: syntax error near unexpected token `;'

--//也就是這樣寫不能使用分號。寫成如下:
$ for n in {1..4} ; do  echo $n & done
[1] 46713
[2] 46714
1
[3] 46715
2
[4] 46716
3
[1]   Done                    echo $n
4
[2]   Done                    echo $n
[3]-  Done                    echo $n
[4]+  Done                    echo $n

--//如果我前面seq xargs的寫法改寫只能如下:
$ for n in {1..10}; do sqlplus -s -l scott/book @m10.txt 1e5 p1fullx=150 $n > /dev/null  &   done
--//如果使用& 後面不能使用分號。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2768585/,如需轉載,請註明出處,否則將追究法律責任。

相關文章