/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
。ただし、 bash では ' glob 修飾子や ' 演算子がないと glob が Text に拡張されないことを望みます。一致するものはありません。/tmp
.sh
zsh
(N)
ksh93
~(N)
shopt -s nullglob
/tmp/*.sh