我有一个C ++程序,它启动一个启动java程序的bash脚本。
C ++程序使用WIFEXITED(status)
来评估bash脚本的退出代码,并在WIFEXITED(status)
求值为false
时输出错误消息。
编辑回答chepner :
为什么下面的一些bash脚本会打印错误消息(即 WIFEXITED(status)==false
)而其他人不打印?它们看起来与我相同。
java -Xmx256M -jar $JAR $@ > outputFile.out
exit $?
#Prints an error code
java -Xmx256M -jar $JAR $@ > outputFile.out
rc=$?
exit $rc
#Prints an error code
java -Xmx256M -jar $JAR $@ > outputFile.out
rc=$?
if [ $rc -eq 0 ]
then
echo "succes"
exit 0
else
echo "failure"
exit $rc
fi
#Prints succes but also the error code
java -Xmx256M -jar $JAR $@ > outputFile.out
exit 0
#Does not print an error code
有关信息:
echo $?
始终打印0。
echo $rc
也会打印0。