nohupの構文エラー(...)

nohupの構文エラー(...)

nohupバックグラウンドでコマンドを実行し、ログアウトしてから再度ログインし、コマンド出力がファイルにあると予想してbashシェルでコマンドをテストしようとしていますnohup.out。これは私が実行したいコマンドです。

$ nohup (sleep 120; echo "job done") &

しかし、引き続きエラーが発生します。

bash: syntax error near unexpected token `sleep`

答え1

nohupコマンドいいえキーワード;実行するコマンドでサブシェルを提供することはできませんが、実際に実行可能なコマンドが必要です。

nohup bash -c 'sleep 120; echo "job done"' &

Bashは「nohup」という関数を宣言しようとしているので、構文エラーを表示します。これは、コマンドラインの2番目の単語に角かっこが表示される唯一のケースです。

nohup () { ... ; }

エラーメッセージは、(ちょっとした)「スリープ」という言葉ではなく、正しい括弧が現れると予想していることを伝えます。

関連情報