我有一个具有以下结构的小型bash脚本:
cd {PATH1}
bash {SCRIPT1} &
sleep 3600
cd {PATH2}
bash {SCRIPT2} &
sleep 3600
...
每个“记录”由3行组成:
我希望它是可提交约100个工作流的主脚本。
现在,我的问题是,我只是注意到,如果某些工作流程引发错误,那么脚本将不再提交其余部分...
我应该如何调整它,以使每个工作流程都得到提交,而不管任何一个工作流程的结果如何?
答案 0 :(得分:1)
我无法复制你在说什么。这是我根据您的描述写的:
$ cat workflow.sh
#!/bin/bash
set -x
cd /opt/
false &
sleep 1
cd $HOME
false &
sleep 1
此处false
模拟失败的作业提交。当我运行它时,一切都会运行:
$ bash workflow.sh
+ cd /opt/
+ sleep 1
+ false
+ cd /home/omajid
+ sleep 1
+ false
$ echo $?
0
您的脚本中是否有set -e
或类似内容?第一个命令失败后,set -e
会使bash退出脚本。