在shell中比较变量和整数?

Dav*_*ght 18 bash shell

我有一个if语句我需要运行,只要我存储在我的$counter变量中的值大于5.

以下是我当前(无效)脚本的相应部分:

if $counter > 5
then
    echo "something"
fi
Run Code Online (Sandbox Code Playgroud)

我犯的错误可能非常明显,但由于某种原因我无法在线找到解决方案..谢谢!

kon*_*box 34

那很简单:

if [ "$counter" -gt 5 ]
then
    echo "something"
fi
Run Code Online (Sandbox Code Playgroud)

  • 除非你需要 `sh` 兼容性,最好使用 `[[` 和 `]]` 而不是 `[` 和 `]`。见 http://mywiki.wooledge.org/BashFAQ/031 (2认同)
  • 如果你正在使用`bash`,`((counter> 5))`甚至更好. (2认同)

Tho*_*mas 19

算术需要在((和之间完成)):

if (( $counter > 5 ))
Run Code Online (Sandbox Code Playgroud)

顺便说一下,你也可以省去$算术,但保持它并没有什么坏处.