試したこと:
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 を使用してそのファイルを実行する必要があります。