ssh -i private_linux_key user@machine "exit 1" || echo %errorlevel%
这总是打印0
。如何获取 ssh 返回的实际错误代码?
||
以某种方式检测到有错误。
答案1
我已经找到了解决方案,这要感谢以下问题:https://stackoverflow.com/questions/11554324/batch-file-errorlevel-issue
setlocal enabledelayedexpansion
ssh -i private_linux_key user@machine "exit 1" || echo !errorlevel!
或者更简单
ssh -i private_linux_key user@machine "exit 1"
exit %ERRORLEVEL%
exit
当然,后者只有在没有更多附加脚本行的情况下才有可能
要了解有关enabledelayedexpansion
Windows/Unix Shell 差异的更多信息:http://blogs.msdn.com/b/oldnewthing/archive/2006/08/23/714650.aspx