linux 脚本 if [ $? -ne 0 ];then

Posted on 2023-06-07 21:42  Frank_Jin  阅读(1812)  评论(0编辑  收藏  举报

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