在 shell 命令中,if [ $? -ne 0 ];then 是一个条件语句,用于检查上一个命令的执行状态。
$? 是一个特殊变量,它包含了上一个命令的退出状态码。-ne 是不等于的意思。
退出状态码为 0 表示命令执行成功,非 0 表示命令执行失败或出现错误。
因此,if [ $? -ne 0 ];then 的意思是:如果上一个命令的退出状态码不等于 0,则执行后面的命令。也就是说,如果上一个命令执行失败或出现错误,就会执行 then 后面的命令。这通常用于在脚本中检查命令是否执行成功,并根据结果采取相应的操作。
另外:
整数比较
-eq 等于,如:if ["$a" -eq "$b" ]
-ne 不等于,如:if ["$a" -ne "$b" ]
-gt 大于,如:if ["$a" -gt "$b" ]
-ge 大于等于,如:if ["$a" -ge "$b" ]
-lt 小于,如:if ["$a" -lt "$b" ]
-le 小于等于,如:if ["$a" -le "$b" ]
<= 小于等于(需要双括号),如:(("$a" <= "$b"))
> 大于(需要双括号),如:(("$a" > "$b"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))