if [ $? -ne 0 ];then 是什么意思
$?表示上一条命zhidao令返回值,$0表示第一个参数,-ne表示不等于。
这是unix的shell编程语句,如果上一条命令执行度后的结束代码不是0则执行下面的命令,知道fi行之前。
如果上一条命令成功执行,返回0,否则返回1. [$? -ne 0] 表示如果$?的值不等回于0,则上一条答命令没有执行。
此处应该是 ping -c 1 -W 2 $ROUTER >/dev/null 2>&1 执行失败。
扩展资料:
如果booleanExpression(布尔表达式)求值为true,就运行statement-1;否则运行statement-2。else关键字和后续的statement-2是可选的。
如果没有else子句,而且booleanExpression求值为false,那么什么也不会发生,程序继续执行if语句之后的代码。注意,布尔表达式必须放在圆括号中,否则无法编译。
如果没有名为CMDCMDLINE的环境变量,%CMDCMDLINE%将在CMD.EXE进行任何处理前扩充为传递给CMD.EXE的原始命令行;否则,您会得到其数值。
如果没有名为CMDEXTVERSION的环境变量,%CMDEXTVERSION%会扩充为CMDEXTVERSION当前数值的字串符表达式;否则,您会得到其数值。
参考资料:
$0 表示第一个参数。
-ne 表示不等于。
这是unix的shell编程语句,如果上一条命令执行后的结束代码不是0则执行下面的命令,知道fi行之前,例子:
who am i | grep root
if [ $? -ne 0 ]
then
echo 'hello'
fi
另外:
整数比较
-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"))
>= 大于等于(需要双括号),如:(("$a" >= "$b"))
who am i | grep root
if [ $? -ne 0 ]
then
echo 'hello'
fi