50

我有一个应用程序,只有在从 Windows 命令提示符调用时才能正常工作。与输入/输出流有关。

所以我可以通过将它作为参数传递给 cmd 从 bash 脚本中调用它。

cmd /c“坏应用”

这很好用——但有时 badapp 会因网络问题而失败——我没有得到任何反馈。无论如何要从 bash 脚本中检查 ERRORLEVEl - 或者在运行 bash 脚本的终端上查看 badapp 的输出?

4

1 回答 1

70

是的,$?是包含错误级别的变量。

举个echo $?例子。

Cygwin bash 的一个示例(我猜您使用的是 Cygwin,因为您cmd在示例中使用的是 Windows。)

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
于 2011-07-26T09:39:19.417 回答