Bashスクリプト内の新しいターミナルウィンドウで起動されたプログラムのエラーコードを取得しようとしています。次のように単純化できます。
#!/bin/bash
urxvt -e bash -c "exit 4"
echo $?
出力:0
urxvtを呼び出すスクリプトから「4」にアクセスしたいです。どうすればいいですか? :)
ベストアンサー1
uxvrt
AFAIKグラフィックターミナルには、実行中のプログラムの戻りコードを提供するユーティリティがありません。
私が考えることができる最良かつ最も簡単な方法は、内部でサブシェルを実行しbash
(少し混乱しているようですが、私を信じてください)、内部で目的のプログラムを実行し、bash
外部シェルを使用して戻りコードを処理することです。これは以下の通りです。 :
urxvt -e bash -c ' (exit 4) ; echo $? > error.code '
これで、ファイルから戻りコードを読み取ることができますerror.code
。
echo
コードを返すと、urxvt
数千秒後に閉じるウィンドウにコードが印刷されるため、一時ファイルが必要です。だからあなたは役に立つものを得ることはできません。