我有一个应用程序,只有从Windows命令提示符调用时才能正常工作。与输入/输出流有关。
所以我可以通过将它作为参数传递给cmd来从bash脚本中调用它。
cmd / c“badapp”
这很好 - 但偶尔badapp会因网络问题而失败 - 而且我没有得到反馈。无论如何都要从bash脚本中检查ERRORLEVEl - 或者在运行bash脚本的终端上查看badapp的输出?
答案 0 :(得分:52)
是的,$?
是包含错误级别的变量。
例如,尝试echo $?
。
来自Cygwin bash的一个例子(我猜你正在使用Cygwin,因为你在你的例子中使用了Windows cmd
。)
susam@nifty /cygdrive/c/Documents and Settings/susam/Desktop
$ cmd /c "badapp"
'badapp' is not recognized as an internal or external command,
operable program or batch file.
susam@nifty/cygdrive/c/Documents and Settings/susam/Desktop
$ if [ $? -eq 0 ]
> then
> echo "good"
> else
> echo "bad"
> fi
bad