在一个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