【问题标题】:Bash: what does "-eq" mean? [duplicate]Bash:“-eq”是什么意思? [复制]
【发布时间】:2017-03-18 18:22:15
【问题描述】:

我想知道-eq 在 bash 脚本中做了什么(如下例所示):

LINES=`ps -p $PID`
    PIDRET=$?
    if [ $PIDRET -eq 0 ];
    then
        export PID
        return 0;
    fi
    rm -f "$CATALINA_PID" 

【问题讨论】:

  • n1 -eq n2 True if the integers n1 and n2 are algebraically equal 来自man pages
  • bash man page 是此类问题的绝佳资源。
  • 在提示符下输入help test 并阅读
  • explainshell.com 是另一个有用的资源。

标签: bash shell sh


【解决方案1】:
bash 中的

-eq 的含义与 == 完全相同——它对两个事物进行逻辑比较,检查它们是否相等。您可以在文档中找到有关 bash 中运算符的更多信息:http://www.tldp.org/LDP/abs/html/comparison-ops.html

【讨论】:

  • 您发布的链接表明-eq==相同。
  • 总的来说,ABS 是一个非常糟糕的参考——把它想象成是在抨击 W3Schools 对于 JavaScript 的意义;它经常在其示例中展示不良做法。如果不使用official manualthe POSIX specification,请考虑养成使用the bash-hackers wikithe Wooledge BashGuide 的习惯。
  • 此外,== 根本不应该在 [ ] 中使用:[ 是 POSIX 指定的命令,但规范中唯一的字符串比较运算符是 =不是 ==;后者是不可移植的扩展。如果您想使用不可移植的扩展,请使用 [[ ]] 而不是 [ ],而不是编写 看起来 符合 POSIX 标准但实际上并非如此的代码。
猜你喜欢
  • 2012-04-19
  • 2014-04-08
  • 2021-02-11
  • 2023-03-12
  • 1970-01-01
  • 2021-08-04
  • 2021-05-04
  • 2013-08-08
  • 1970-01-01
相关资源
最近更新 更多