bashスクリプト内から、新しいターミナルウィンドウで起動されたプログラムのエラーコードを取得しようとしています。これに減らすことができます:
#!/bin/bash
urxvt -e bash -c "exit 4"
echo $?
出力:0
urxvtを呼び出しているスクリプトの「4」にアクセスしたいと思います。どうすればそれができますか?:)
などのAFAIKグラフィカル端末にuxvrt
は、実行したプログラムの戻りコードを提供するユーティリティがありません。
私の頭に浮かんだ最良かつ最も簡単な方法は、内部でサブシェルを実行しbash
(少し雑然と見えますが、私を信じてください)、内部で必要なプログラムを実行しbash
、外部のプログラムを使用して戻りコードを処理することです。次のとおりです:
urxvt -e bash -c ' (exit 4) ; echo $? > error.code '
これで、ファイルから戻りコードを読み取ることができますerror.code
。
一時ファイルの存在が必要であることに注意してください。echo
戻りコードだけを返すと、urxvt
ウィンドウに出力され、数千秒後にそれ自体が閉じられます。したがって、何も役に立ちません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加