bashのforループでバックグラウンドジョブを実行しようとしています:
for i in $(seq 3); do echo $i ; sleep 2 & ; done
エラーが発生します:
bash: syntax error near unexpected token `;'
zshでは、コマンドラインが機能します。
bashのforループでバックグラウンドジョブを実行しようとしています:
for i in $(seq 3); do echo $i ; sleep 2 & ; done
エラーが発生します:
bash: syntax error near unexpected token `;'
zshでは、コマンドラインが機能します。
回答:
;を削除します。睡眠後
for i in $(seq 3); do echo $i ; sleep 2 & done
ところで、このようなループは、適切なインデントを使用して別々の行に記述する方が適切です(これをシェルスクリプトファイルで記述している場合)。
for i in $(seq 3)
do
echo $i
sleep 2 &
done
$i
バックグラウンドコマンドでこれを行うと、ジョブコントロールが$i
、実際の値で$i
はなくプロセス名に含まれていると表示するのはなぜですか?
for I in <whatever>; do rm -fr $I & done
...- jobs
>rm -fr $I
ジョブごとに実際のディレクトリが削除される代わりに、数回