実行ファイルが通常通りに動作しない

実行ファイルが通常通りに動作しない

このコマンドを入力すると

nohup CloudCompute.command &

それは結果を生み出す

[1] 782

それが私が望んでいることです。(ちなみにそれはPID番号です)

したがって、実行可能ファイル ( .command) で同じコマンドを実行し、出力をファイルに追加しようとすると、機能しません。CloudCompute.command実行時に表示される実際の PID ではなく、出力のみが印刷されます。同じディレクトリにあることは間違いありません。

なぜこのようなことが起こるのでしょうか? 実行可能ファイルで手動で入力した場合と同じ出力を生成するにはどうすればよいでしょうか?

ありがとう

答え1

なぜこうなった?

その出力は次のようになります。

[1] 782

実行可能ファイルからのものではありません。bashバックグラウンドで何かを実行したときにターミナルに書き込まれるものです。これはジョブ番号[1]とプロセスの PIDです782。後でプロセスが終了すると、次のようなものが表示されます。

[1]+  Done                    command

bashこれも、ジョブ番号 1 のプロセスが終了したことに気付いたためです。

バックグラウンドでコマンドを実行すると、PID は変数に保存されます$!

$ sleep 10 &
[1] 1234
$ echo $!
1234

実行可能ファイルで手動で入力した場合と同じ出力を生成するにはどうすればよいですか?

したがって、実行可能ファイル同じ出力を生成します。

関連情報