`exit $ rc`和`if($ rc -eq 0){exit 0}`对`WIFEXITED`的效果不一样?

时间:2016-03-07 18:23:12

标签: c++ bash exit

我有一个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。

0 个答案:

没有答案