[問題] 利用shell script一次執行多個程式

作者: LaAc (深淵戰士)   2023-01-03 19:22:00
在跑模擬的時候通常需要一次執行數個檔案,因為不想要一行行輸入指令,所以想說寫個
script一起跑,雖然成功了但只能一次執行一個檔案,前面的完成後下一個才能跑,於是
我想把script改成可以一次跑所有檔案的樣子:
#!/bin/bash
cd test
chmod u+x *.sh
./A ; ./B ; ./C ; ./D
ABCD各是一個script,執行程式的指令就寫在裡面,長這樣:
#!/bin/bash
cd ..
cd A
[執行程式的指令]
我以為這樣用分號區隔代表一次執行所有指令的意思,但是這樣子好像還是只能一個一個
跑,不知道是哪裡寫錯了呢?
作者: Bencrie   2023-01-03 19:38:00
; 是說不管執行結果一個一個執行你要同時四個就用 &,./A & 會送背景送背景以後用 $! 去取 PID,之後可以用 wait 去取 exitcode。
作者: enthos (影斯作業系統)   2023-01-04 15:38:00
nohup ./a& ; nohup ./b &
作者: dces4212 (flawless)   2023-01-05 18:46:00
借問 nohup只用在避免session關掉時相關程式也被關掉的情境吧?
作者: Bencrie   2023-01-05 19:02:00
是。不過我都用 tmux
作者: holishing   2023-01-06 22:18:00
tmux+1 , 比較舊的系統可能可以裝screen
作者: rickieyang (Rickie Yang)   2023-01-07 01:00:00
一直都用screen,懶得重新適應tmux @@
作者: holishing   2023-01-07 01:33:00
tmux 我只有不能 big5 轉 utf8 這點不習慣 (
作者: Typebrook (Pham)   2023-01-07 10:38:00
coproc, setsid 也可以參考一下,各有不同的使用情境
作者: Gold740716 (項為之強)   2023-01-07 22:24:00
./A & pa=$!; ./B & pb=$!; wait; kill $pa $pdbash 也可以用 disown
作者: newversion (海納百川)   2023-01-08 10:26:00
&後面不能有分號; 會出錯
作者: simpson083 (雷姆,是一種信仰)   2023-02-14 00:26:00
#!/bin/bashcd test chmod u+x *.sh./A & ./B & ./C & ./D &wait這樣,這個 script 就會在一次執行中同時執行 A, B, C, D 四個檔案,並且在所有執行完成後才結束整個執行

Links booklink

Contact Us: admin [ a t ] ucptt.com