Bash 在最后一个命令的返回值上,if/else路径不符合预期
由于某种原因,如果排序脚本失败,它仍将使用else部分。我遗漏了什么?另外,最好在语句中引用exit status变量,并且只需要一个=即可。Bash 在最后一个命令的返回值上,if/else路径不符合预期,bash,if-statement,Bash,If Statement,由于某种原因,如果排序脚本失败,它仍将使用else部分。我遗漏了什么?另外,最好在语句中引用exit status变量,并且只需要一个=即可。$?永远不能等于-1。返回代码是[0-255]。真不敢相信我竟然错过了!掌心!请注意,最后一行发布的命令将不会具有您在$?-->中期望的值$?包含上一个命令的退出状态,并且上一个命令是“if”中的[条件子句,并且由于您在else部分,$?将始终为1。在运行sh sort.sh…命令后,需要使用类似rc=$?的内容捕获退出状态,然后if($rc==255))
$?
永远不能等于-1
。返回代码是[0-255]
。真不敢相信我竟然错过了!掌心!请注意,最后一行发布的命令将不会具有您在$?
-->中期望的值$?
包含上一个命令的退出状态,并且上一个命令是“if”中的[
条件子句,并且由于您在else部分,$?将始终为1。在运行sh sort.sh…
命令后,需要使用类似rc=$?
的内容捕获退出状态,然后if($rc==255));然后…;否则echo exit status是$rc;fi
另外,最好在语句中引用exit status变量,并且只需要一个=即可。$?
永远不能等于-1
。返回码是[0-255]
。真不敢相信我错过了!Face Palm!哈哈哈注意最后一行发布的内容将不会具有您在$?
-$?
中期望的值,其中包含上一个命令的退出状态,并且上一个命令是“if”中的[
条件子句,并且由于您在else部分,$?将始终为1。在运行sh sort.sh…
命令后,需要使用类似rc=$?
的内容捕获退出状态,然后如果($rc==255));那么…;else echo退出状态为$rc;fi
sh $CPB_BIN/nm187_sort.sh $CPB_TRANS/$SORT_FILE_ORIGINAL $CPB_TRANS/$OUTPUT_FILE
if [ $? == -1 ]
then
print "Nonmon sort command failed: $!\n"
exit 1
else
print "Nonmon sort command exited with value $?\n"