在一個bash腳本中,我用一個給出錯誤的命令啓動一個新的終端。不過,我似乎並沒有能夠抓住這個錯誤代碼:BASH從子終端獲得父終端的錯誤代碼?
#! /bin/bash
gnome-terminal -x bash -c "cat dksdamfasdlm"
echo $?
輸出:
0
所以我得到了gnome-terminal
命令的錯誤代碼,而不是cat
之一。我得到的一個建議是用代碼創建一個文件,並從父bash中讀取它。問題是,我似乎仍然無法和讀取錯誤代碼甚至這樣:
#! /bin/bash
gnome-terminal -x bash -c "cat dksdamfasdlm; echo $?; sleep 2"
輸出(新航站樓):
cat: dksdamfasdlm: No such file or directory
0
這是爲什麼?有關如何解決這個問題的建議?我只是想以某種方式從父bash中獲取新終端中的錯誤。
你爲什麼要這麼做?除非你正在測試GNOME終端本身,否則你應該直接運行腳本,而不是通過終端。 – l0b0
我正在嘗試爲應用程序(Docker)打開不同終端的BASH腳本。然而,我希望能夠抓住任何錯誤。 – Pithikos
你能給我更多的背景嗎?我仍然不明白你爲什麼要使用終端,而不是僅僅運行腳本。 – l0b0