バックグラウンドでコマンドを実行し、ログアウトして再度ログインし、コマンドの出力がNohup.outファイルにあることを期待して、bashシェルでNohupコマンドをテストしようとしています。これが私が実行しようとしているコマンドです:
Nohup.out
Nohup
$ Nohup (sleep 120; echo "job done") &
しかし、エラーが発生し続けます。
bash: syntax error near unexpected token `sleep`
Nohupコマンド ではありません キーワード ;実行するコマンドとしてサブシェルを指定することはできません。代わりに、実際の実行可能なコマンドが必要です。
Nohup bash -c 'sleep 120; echo "job done"' &
Bashが構文エラーを表示しているのは、 "Nohup"という関数を宣言しようとしていると考えているためです。これは、コマンドラインの2番目のWordにかっこが表示される唯一のケースです。
Nohup () { ... ; }
エラーメッセージは、(あいまいに)Wordが「スリープ」ではなく、正しい括弧が表示されることを期待していることを示しています。