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

看板Linux作者 (深淵戰士)時間1年前 (2023/01/03 19:22), 1年前編輯推噓10(1005)
留言15則, 8人參與, 1年前最新討論串1/1
在跑模擬的時候通常需要一次執行數個檔案,因為不想要一行行輸入指令,所以想說寫個 script一起跑,雖然成功了但只能一次執行一個檔案,前面的完成後下一個才能跑,於是 我想把script改成可以一次跑所有檔案的樣子: #!/bin/bash cd test chmod u+x *.sh ./A ; ./B ; ./C ; ./D ABCD各是一個script,執行程式的指令就寫在裡面,長這樣: #!/bin/bash cd .. cd A [執行程式的指令] 我以為這樣用分號區隔代表一次執行所有指令的意思,但是這樣子好像還是只能一個一個 跑,不知道是哪裡寫錯了呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.108.42 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1672744924.A.049.html ※ 編輯: LaAc (118.231.138.15 臺灣), 01/03/2023 19:28:30

01/03 19:38, 1年前 , 1F
; 是說不管執行結果一個一個執行
01/03 19:38, 1F

01/03 19:39, 1年前 , 2F
你要同時四個就用 &,./A & 會送背景
01/03 19:39, 2F

01/03 19:40, 1年前 , 3F
送背景以後用 $! 去取 PID,之後可以用 wait 去取 exit
01/03 19:40, 3F

01/03 19:40, 1年前 , 4F
code。
01/03 19:40, 4F
感謝 我去試試看 ※ 編輯: LaAc (118.231.138.15 臺灣), 01/03/2023 20:28:57

01/04 15:38, 1年前 , 5F
nohup ./a& ; nohup ./b &
01/04 15:38, 5F
感謝 這樣寫也可以跑! ※ 編輯: LaAc (118.231.138.15 臺灣), 01/05/2023 01:02:56

01/05 18:46, 1年前 , 6F
借問 nohup只用在避免session關掉時相關程式也被關掉的
01/05 18:46, 6F

01/05 18:46, 1年前 , 7F
情境吧?
01/05 18:46, 7F

01/05 19:02, 1年前 , 8F
是。不過我都用 tmux
01/05 19:02, 8F

01/06 22:18, 1年前 , 9F
tmux+1 , 比較舊的系統可能可以裝screen
01/06 22:18, 9F

01/07 01:00, 1年前 , 10F
一直都用screen,懶得重新適應tmux @@
01/07 01:00, 10F

01/07 01:33, 1年前 , 11F
tmux 我只有不能 big5 轉 utf8 這點不習慣 (
01/07 01:33, 11F

01/07 10:38, 1年前 , 12F
coproc, setsid 也可以參考一下,各有不同的使用情境
01/07 10:38, 12F

01/07 22:24, 1年前 , 13F
./A & pa=$!; ./B & pb=$!; wait; kill $pa $pd
01/07 22:24, 13F

01/08 00:06, 1年前 , 14F
bash 也可以用 disown
01/08 00:06, 14F

01/08 10:26, 1年前 , 15F
&後面不能有分號; 會出錯
01/08 10:26, 15F
文章代碼(AID): #1Zj0_S19 (Linux)
文章代碼(AID): #1Zj0_S19 (Linux)