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

God*_*ney 0 bash shell-script

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

Sté*_*las 5

for在循环内使用循环while true

while true; do
  for script in /tmp/{1..4}.sh; do
    "$script"
  done
done
Run Code Online (Sandbox Code Playgroud)

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

您还可以使用 C 风格:

for ((;;)) {
  for script in /tmp/{1..4}.sh; do
    "$script"
  done
}
Run Code Online (Sandbox Code Playgroud)

/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

  • @GodofMoney,你应该接受答案,这就是在这些网站上说*谢谢*的方式:)。 (2认同)