提交脚本的Bash语法

提交脚本的Bash语法,bash,Bash,我有一个小bash脚本,它具有以下结构: cd {PATH1} bash {SCRIPT1} & sleep 3600 cd {PATH2} bash {SCRIPT2} & sleep 3600 ... 每个“记录”由3行组成: 第一行将我带到一个目录,我将从中启动工作流。它必须保持这种方式,即我必须先移动到一个目录,然后从那里提交 第二行调用bash脚本,该脚本将启动一个大型工作流。请注意,我将其移到后台,以便处理其他“记录” 第三行是让这个脚本休眠1小时。由于工作流的性

我有一个小bash脚本,它具有以下结构:

cd {PATH1}
bash {SCRIPT1} &
sleep 3600
cd {PATH2}
bash {SCRIPT2} &
sleep 3600
...
每个“记录”由3行组成:

  • 第一行将我带到一个目录,我将从中启动工作流。它必须保持这种方式,即我必须先移动到一个目录,然后从那里提交
  • 第二行调用bash脚本,该脚本将启动一个大型工作流。请注意,我将其移到后台,以便处理其他“记录”
  • 第三行是让这个脚本休眠1小时。由于工作流的性质,这是必要的
我希望它是一个主脚本,可以提交约100个工作流。
现在,我的问题是,我刚刚注意到,如果某些工作流出现错误,那么脚本将不再提交其余工作流…

我应该如何调整它,使每个工作流都能被提交,而不管单个工作流的结果如何?

我无法重现您所说的内容。以下是我根据你的描述写的:

$ 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在第一个命令失败时立即退出脚本。

这里没有足够的信息来说明它停止的原因。请附上一份说明问题的报告。