使用 for 循环获取不同变量的脚本

使用 for 循环获取不同变量的脚本

我有几个 shell 脚本,我将它们总结在一个全局脚本中。我使用了一些在所有脚本中都相同的变量,并且为此编写了一个单独的脚本,我在每个子脚本中都获取了该脚本。这就是我的变量脚本的样子:

variables.sh
NUMBER="6"
TYPE="${NUMBER}_xyz"
STATE="S05"
DIR="path/file_${NUMBER}_blabla"
FILE="file.txt"

我的全局脚本 global.sh 如下所示:

source variables.sh
bash script1.sh
bash script2.sh
...

现在,我需要更改变量脚本中的 NUMBER 变量,运行全局脚本,更改数字,再次运行全局脚本,等等。对于 6-15 中的每个数字。目前,每次全局脚本完成时我都会手动执行此操作,但这会占用大量时间。

答案1

首先,您必须进行调整variables.sh,以便NUMBER不再无条件设置:

NUMBER=${NUMBER:-6}

这允许您从调用进程传递值:

for((NUMBER=6;NUMBER<16;NUMBER++)); do
  source variables.sh
  bash script1.sh
  bash script2.sh
done

总评:我很惊讶这在没有export声明或的情况下也能工作set -a

相关内容