なぜこれですか?
if true; then sleep 3 &; fi
bash: syntax error near unexpected token `;'
走りたい
sleep 3
コマンド["sleep 3"は単にイエス]が"並列"で実行され、より早く完了するようにバックグラウンドで実行されます。しかし、私はこれを得ます:
bash: syntax error near unexpected token `;'
エラーメッセージ。なぜ?ジョブをバックグラウンドで送信できないのはなぜですか?
答え1
これはすでにステートメント区切り文字であるため、後に入れない&
でください。;
答え2
この場合、コマンドを分離する必要はないようです(&
自分で分離)。
例えば。
$> if true; then (sleep 3; echo ok) & fi
[1] 14224
$> ok
答え3
複数行で書いてみてください。
if true; then
sleep 3 &
fi