masalah nohup ketika diberi perintah dengan argumen

2

Mencoba:

while true; do date; sleep 1; done

Punya:

Thu Aug 27 17:33:24 IDT 2009
Thu Aug 27 17:33:25 IDT 2009
Thu Aug 27 17:33:26 IDT 2009
...

Tapi:

nohup while true; do date; sleep 1; done

Dapatkan saya:

bash: syntax error near unexpected token `do'

Ada ide mengapa?

Adam Matan
sumber

Jawaban:

4

Jika Anda BENAR-BENAR ingin melakukan semuanya di baris perintah tanpa membuat skrip, lakukan ini:

nohup bash -c "while true; do date; sleep 1; done"
Sean Staats
sumber
2

nohup mengambil perintah, "sementara" bukan perintah, itu adalah shell bawaan.

bobmcn
sumber
1

sedangkan sebenarnya adalah perintah yang dibangun ke dalam bash, bukan executable yang terpisah, jadi nohup tidak dapat menjalankannya. Jika Anda ingin melakukan ini, Anda harus memasukkan perintah ke dalam file dan kemudian menggunakan nohup untuk menjalankan file itu.

Corey McKinnon
sumber