[问题] 利用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