从bash脚本访问ERRORLEVEL

shi*_*ape 42 bash cmd errorlevel

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

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

cmd/c"badapp"

这很好 - 但偶尔badapp会因网络问题而失败 - 我得不到反馈.无论如何都要从bash脚本中检查ERRORLEVEl - 或者在运行bash脚本的终端上查看badapp的输出?

Sus*_*Pal 55

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

试试这个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
Run Code Online (Sandbox Code Playgroud)

  • 是! 你为什么不试试自己确认一下? (7认同)