2017-01-01 2 views
0

呼び出されたコマンドのステータスが失敗する方法:私は、その後のパス/フェイルの状態をチェックするとgnome-terminalの - /パスを取得し、私はこのようなgnome-terminalの内部でコマンドを実行している

gnome-terminal --disable-factory -x bash -c "<some_command>" 

$?を使用している最後のコマンドは、<some_command>が失敗しても常に0になります。

の合格/不合格のステータスを元のシェルに反映させる方法はありますか?$?は正しい結果を表示しますか?

+1

gnome-terminalを明示的に呼び出す理由は何ですか?あなたがすでに1つを実行しているので、 "' '"を直接実行しないでください。 – wallyk

+0

gnome-terminalは実行されたコマンドのステータスを反映していません。他のターミナルコマンドも認識しません。なぜ非インタラクティブな仕事のためにgnome-terminalを使っていますか? –

答えて

0

これは、コマンドにexit $?を追加しても、bashはシェルセッションのサブプロセスであるgnome-terminalのサブプロセスです。

gnome-terminalのサブプロセス(bash)が異常終了し、gnome-terminal "場合でもS GTK + UIプロセスはまだこれはX/Y Problem聞こえる0

と正常に終了 - 、むしろgnome-terminalを使用し、終了ステータスをチェックするよりもあなたが解決したいと思っている問題の根本を見つけ出し、それを追いかけるのです。

+0

こんにちは。私はこれがx/y問題ではないと思う。この場合、xは非常に単純なので、はリモートセッションで実行しているコンパイルコマンドで、GNOME端末で実行する多くの印刷物がなくてもメインセッションをきれいに保つことができますが、それと同時に編集の進行状況が見えます。私が望むのは、コンパイルが失敗した場合、メインプロセスがそれを検出して正常に停止するということです。 – user1845156

+0

@ user1845156これは "プログラミング"よりも "使い勝手"がよく聞こえますが、あなたは[unix.se]でより高品質の回答を得ることができると思います。 – cat

関連する問題