96

bashのforループでバックグラウンドジョブを実行しようとしています:

for i in $(seq 3); do echo $i ; sleep 2 & ; done

エラーが発生します:

bash: syntax error near unexpected token `;'

zshでは、コマンドラインが機能します。

4

2 に答える 2

148

;を削除します 睡眠後

for i in $(seq 3); do echo $i ; sleep 2 & done

ところで、このようなループは、適切なインデントを使用して別々の行に記述する方が適切です(これをシェルスクリプトファイルで記述している場合)。

for i in $(seq 3)
do
   echo $i
   sleep 2 &
done
于 2012-09-18T08:19:53.340 に答える
45

バックグラウンドコマンドを()に入れることができます

for i in $(seq 3); do echo $i ; (sleep 2 &) ; done
于 2013-05-31T16:56:44.510 に答える