如何按顺序无限循环运行bash脚本?

如何按顺序无限循环运行bash脚本?

如何运行 /tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh 然后再次循环运行 /tmp/1.sh ?最好是无限循环

答案1

for在循环内使用循环while true

while true; do
  for script in /tmp/{1..4}.sh; do
    "$script"
  done
done

您可以使用任何成功的命令,而不需要执行任何操作来代替包含true, ((1)), [[ x ]], printf '', eval:尽管true这是最明显的。

您还可以使用 C 风格:

for ((;;)) {
  for script in /tmp/{1..4}.sh; do
    "$script"
  done
}

/tmp/{1..4}.sh(最初来自 zsh 的非标准语法)是表示/tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh列表的一种方法。您还可以使用 csh 样式/tmp/{1,2,3,4}.sh/tmp/1.sh /tmp/2.sh /tmp/3.sh /tmp/4.sh.您还可以使用 globbing with来扩展到所有以词法顺序结尾的/tmp/*.sh非隐藏文件名,尽管在没有's glob 限定符或's运算符的 bash 中,您希望该 glob 不扩展到没有匹配时的文字。/tmp.shzsh(N)ksh93~(N)shopt -s nullglob/tmp/*.sh

相关内容