楼主:
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
[执行程式的指令]
我以为这样用分号区隔代表一次执行所有指令的意思,但是这样子好像还是只能一个一个
跑,不知道是哪里写错了呢?
; 是说不管执行结果一个一个执行你要同时四个就用 &,./A & 会送背景送背景以后用 $! 去取 PID,之后可以用 wait 去取 exitcode。
作者:
enthos (影斯作业系统)
2023-01-04 15:38:00nohup ./a& ; nohup ./b &
作者:
dces4212 (flawless)
2023-01-05 18:46:00借问 nohup只用在避免session关掉时相关程式也被关掉的情境吧?
tmux+1 , 比较旧的系统可能可以装screen
tmux 我只有不能 big5 转 utf8 这点不习惯 (
coproc, setsid 也可以参考一下,各有不同的使用情境
./A & pa=$!; ./B & pb=$!; wait; kill $pa $pdbash 也可以用 disown
#!/bin/bashcd test chmod u+x *.sh./A & ./B & ./C & ./D &wait这样,这个 script 就会在一次执行中同时执行 A, B, C, D 四个档案,并且在所有执行完成后才结束整个执行