Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 在最后一个命令的返回值上,if/else路径不符合预期_Bash_If Statement - Fatal编程技术网

Bash 在最后一个命令的返回值上,if/else路径不符合预期

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))

由于某种原因,如果排序脚本失败,它仍将使用else部分。我遗漏了什么?

另外,最好在语句中引用exit status变量,并且只需要一个=即可。
$?
永远不能等于
-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"