提交脚本的Bash语法
我有一个小bash脚本,它具有以下结构:提交脚本的Bash语法,bash,Bash,我有一个小bash脚本,它具有以下结构: cd {PATH1} bash {SCRIPT1} & sleep 3600 cd {PATH2} bash {SCRIPT2} & sleep 3600 ... 每个“记录”由3行组成: 第一行将我带到一个目录,我将从中启动工作流。它必须保持这种方式,即我必须先移动到一个目录,然后从那里提交 第二行调用bash脚本,该脚本将启动一个大型工作流。请注意,我将其移到后台,以便处理其他“记录” 第三行是让这个脚本休眠1小时。由于工作流的性
cd {PATH1}
bash {SCRIPT1} &
sleep 3600
cd {PATH2}
bash {SCRIPT2} &
sleep 3600
...
每个“记录”由3行组成:
- 第一行将我带到一个目录,我将从中启动工作流。它必须保持这种方式,即我必须先移动到一个目录,然后从那里提交
- 第二行调用bash脚本,该脚本将启动一个大型工作流。请注意,我将其移到后台,以便处理其他“记录”
- 第三行是让这个脚本休眠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在第一个命令失败时立即退出脚本。这里没有足够的信息来说明它停止的原因。请附上一份说明问题的报告。