Bash
如何在終端外傳播錯誤程式碼?
從 bash 腳本中,我嘗試檢索在新終端視窗中啟動的程序的錯誤程式碼。可以簡化為:
#!/bin/bash urxvt -e bash -c "exit 4" echo $?
輸出:0
我想訪問呼叫 urxvt 的腳本中的“4”。請問我該怎麼做?:)
AFAIK 圖形終端等
uxvrt
沒有任何實用程序可以為您提供您在其上執行的程序的返回碼。我想到的最好和最直接的方法是在你的內部執行一個子shell
bash
(看起來有點混亂,但相信我)並在內部執行你想要的任何程序,bash
並使用外部的來處理返回程式碼如下:urxvt -e bash -c ' (exit 4) ; echo $? > error.code '
現在您可以從文件中讀取返回碼
error.code
。請注意,臨時文件的存在是必要的,因為如果您只是
echo
返回程式碼,它會列印在urxvt
視窗中,該視窗本身會在幾千秒後關閉。所以您不會得到任何有用的東西。