Kirim tugas ke latar belakang dalam "jika"

10

Kenapa ini?

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

saya ingin berlari

sleep 3

di latar belakang sehingga perintah ["sleep 3" hanyalah sebuah contoh] akan berjalan dalam gaya "paralell", sehingga selesai lebih cepat. Tapi saya mendapatkan ini:

bash: syntax error near unexpected token `;'

pesan eror. Mengapa? Mengapa saya tidak bisa mengirim tugas ke latar belakang?

LanceBaynes
sumber
Menurut Anda, apa yang Anda uji dengan ifpernyataan itu?
glenn jackman

Jawaban:

6

Sepertinya Anda tidak perlu memisahkan perintah dalam kasus itu ( &pisahkan sendiri).

Sebagai contoh.

$> if true; then (sleep 3; echo ok) &  fi
[1] 14224
$> ok
ДМИТРИЙ МАЛИКОВ
sumber
8

Itu karena &sudah merupakan pemisah pernyataan, jadi Anda tidak harus meletakkan ;setelah ini.

enzotib
sumber