引数付きコマンドを実行すると nohup に問題が発生する

引数付きコマンドを実行すると nohup に問題が発生する

試したこと:

while true; do date; sleep 1; done

得たもの:

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

しかし:

nohup while true; do date; sleep 1; done

分かりました:

bash: syntax error near unexpected token `do'

理由について何か考えはありますか?

答え1

スクリプトを作成せずに、すべてをコマンドラインで実行したい場合は、次のようにします。

nohup bash -c "while true; do date; sleep 1; done"

答え2

nohup はコマンドを受け取りますが、「while」はコマンドではなく、シェルの組み込みコマンドです。

答え3

while は実際には bash に組み込まれているコマンドであり、別個の実行可能ファイルではないため、nohup では実行できません。これを実行するには、コマンドをファイルに入れてから、nohup を使用してそのファイルを実行する必要があります。

関連情報