「if」でタスクをバックグラウンドに送信


10

どうしてこれなの?

if true; then sleep 3 &; fi
bash: syntax error near unexpected token `;'

走りたい

sleep 3

コマンド["sleep 3"は単なる例]が "paralell"スタイルで実行されるようにバックグラウンドで実行されるため、より速く終了します。しかし、私はこれを手に入れています:

bash: syntax error near unexpected token `;'

エラーメッセージ。どうして?バックグラウンドにタスクを送信できないのはなぜですか?


ifステートメントで何をテストしていると思いますか?
グレン・ジャックマン、2011

回答:


6

その場合、コマンドを分離する必要はないようです(&それ自体を分離します)。

例えば。

$> if true; then (sleep 3; echo ok) &  fi
[1] 14224
$> ok

8

です&すでに文の区切りであるあなたが置くべきではありませんので、;この後。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.