如何通过单条Bash命令运行多个Bash脚本?
单条命令运行多个Bash脚本的解决方案
下面针对两种核心场景给出直接可用的写法:
顺序执行脚本
如果需要按顺序逐个运行脚本(前一个跑完再启动下一个),有两种常用方式:
- 不管前一个脚本执行结果如何,都继续运行下一个:
bash script1.sh; bash script2.sh; bash script3.sh; bash script4.sh - 仅当前一个脚本执行成功(返回值为0)时,才运行下一个:
bash script1.sh && bash script2.sh && bash script3.sh && bash script4.sh
并行执行脚本
如果想让多个脚本同时在后台运行以节省时间,可以用&将每个脚本放到后台,最后加wait让当前shell等待所有脚本执行完成:
bash script1.sh & bash script2.sh & bash script3.sh & bash script4.sh & wait
如果不加wait,当前shell会直接返回,后台脚本会继续运行,但你无法在当前终端看到所有脚本的输出汇总(除非单独对每个脚本做输出重定向)。
简化写法(脚本已添加执行权限)
如果已经给所有脚本添加了执行权限(执行chmod +x script*.sh),可以省去每次输入bash的步骤,直接运行:
# 顺序执行(不检查前序脚本成功与否) ./script1.sh; ./script2.sh; ./script3.sh; ./script4.sh # 并行执行 ./script1.sh & ./script2.sh & ./script3.sh & ./script4.sh & wait
批量处理命名有规律的脚本
如果脚本命名有固定规律(比如都是scriptN.sh格式),用循环可以更简洁地批量执行:
# 顺序执行 for script in script{1..4}.sh; do bash "$script"; done # 并行执行 for script in script{1..4}.sh; do bash "$script" & done; wait
内容的提问来源于stack exchange,提问作者Joe Cola
相关产品推荐
相关产品推荐

