bash脚本 – 检查bash变量是否等于0

前端之家收集整理的这篇文章主要介绍了bash脚本 – 检查bash变量是否等于0前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个bash变量深度,我想测试它是否等于0.如果是,我想停止执行脚本。到目前为止我有:
zero=0;

if [ $depth -eq $zero ]; then
    echo "false";
    exit;
fi

不幸的是,这导致:

[: -eq: unary operator expected

(可能由于翻译有点不准确)

请,我如何修改我的脚本让它工作?

看起来你的深度变量未设置。这意味着在bash将变量的值替换为表达式后,表达式[$ depth -eq $ zero]变为[-eq 0]。这里的问题是-eq运算符不正确地用作只有一个参数(零)的运算符,但它需要两个参数。这就是为什么你得到一元操作错误消息。

编辑:正如Doktor J在他的评论中提到的,一个避免检查中未设置变量的问题的安全方法是将变量包含在“”中。看到他的解释的评论

if [ "$depth" -eq "0" ]; then
   echo "false";
   exit;
fi

与命令一起使用的未设置变量对于bash显示为空。你可以使用下面的测试来验证这一点,所有测试都是false并且是等效的,因为xyz是未设置的:

> if [];然后echo“true”; else echo“false”; fi> xyz =; if [$ xyx];然后echo“true”; else echo“false”; fi

猜你在找的Bash相关文章