如何让PowerShell/Bash脚本根据C# exe返回值返回exit 0/1?
PowerShell 实现方案
场景1:Test.exe 输出字符串 "true"/"false"
直接捕获程序的输出内容,判断后设置脚本退出码:
# 调用Test.exe并传入参数,捕获输出结果 $exeResult = .\Test.exe Parameter1 # 根据输出结果设置脚本退出码 if ($exeResult -eq 'true') { exit 0 } else { exit 1 }
场景2:Test.exe 通过退出码返回状态(0代表true,非0代表false)
很多程序会用退出码表示执行状态,这种情况下可以直接用$LASTEXITCODE变量获取程序的退出码:
# 调用Test.exe并传入参数 .\Test.exe Parameter1 # 根据程序的退出码设置脚本退出码 if ($LASTEXITCODE -eq 0) { exit 0 } else { exit 1 }
Bash 实现方案
场景1:Test.exe 输出字符串 "true"/"false"
捕获程序输出,判断后设置脚本退出码:
#!/bin/bash # 调用Test.exe并传入参数,捕获输出结果 exe_result=$(./Test.exe Parameter1) # 判断输出结果并设置脚本退出码 if [ "$exe_result" = "true" ]; then exit 0 else exit 1 fi
场景2:Test.exe 通过退出码返回状态(0代表true,非0代表false)
用$?获取上一条命令的退出码,判断后设置脚本退出码:
#!/bin/bash # 调用Test.exe并传入参数 ./Test.exe Parameter1 # 根据程序的退出码设置脚本退出码 if [ $? -eq 0 ]; then exit 0 else exit 1 fi
内容的提问来源于stack exchange,提问作者user19011893
相关产品推荐
相关产品推荐

