首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >检查bash变量是否等于0

检查bash变量是否等于0
EN

Stack Overflow用户
提问于 2012-10-26 19:30:00
回答 5查看 443.2K关注 0票数 214

我有一个bash变量depth,我想测试它是否等于0。如果是,我想停止执行脚本。到目前为止,我有:

代码语言:javascript
运行
复制
zero=0;

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

不幸的是,这会导致:

代码语言:javascript
运行
复制
 [: -eq: unary operator expected

(由于翻译的原因,可能有点不准确)

请告诉我,我如何修改我的脚本才能让它正常工作?

EN

回答 5

Stack Overflow用户

发布于 2012-10-26 19:57:29

双括号(( ... ))用于算术运算。

双方括号[[ ... ]]可用于比较和检查数字(仅支持整数),运算符如下:

代码语言:javascript
运行
复制
· NUM1 -eq NUM2 returns true if NUM1 and NUM2 are numerically equal.

· NUM1 -ne NUM2 returns true if NUM1 and NUM2 are not numerically equal.

· NUM1 -gt NUM2 returns true if NUM1 is greater than NUM2.

· NUM1 -ge NUM2 returns true if NUM1 is greater than or equal to NUM2.

· NUM1 -lt NUM2 returns true if NUM1 is less than NUM2.

· NUM1 -le NUM2 returns true if NUM1 is less than or equal to NUM2.

例如

代码语言:javascript
运行
复制
if [[ $age > 21 ]] # bad, > is a string comparison operator

if [ $age > 21 ] # bad, > is a redirection operator

if [[ $age -gt 21 ]] # okay, but fails if $age is not numeric

if (( $age > 21 )) # best, $ on age is optional
票数 68
EN

Stack Overflow用户

发布于 2012-10-26 19:37:18

尝试:

代码语言:javascript
运行
复制
zero=0;

if [[ $depth -eq $zero ]]; then
  echo "false";
  exit;
fi
票数 24
EN

Stack Overflow用户

发布于 2016-09-24 07:14:01

您还可以使用此格式并使用比较运算符,如'==‘'<=’

代码语言:javascript
运行
复制
  if (( $total == 0 )); then
      echo "No results for ${1}"
      return
  fi
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13086109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档