0%

Brackets in Bash

中括号

  1. [ ]test是bash的内部命令,[[ ]]是shell的条件判断关键字。

    1
    2
    3
    4
    5
    6
    $ type [
    [ is a shell builtin
    $ type test
    test is a shell builtin
    $ type [[
    [[ is a shell keyword
  2. [ ]test是等价的,用于评估条件表达式。可以使用man [help [查阅帮助文档。

    1
    2
    3
    4
    5
    6
    $ help [
    [: [ arg... ]
    Evaluate conditional expression.

    This is a synonym for the "test" builtin, but the last argument must
    be a literal `]', to match the opening `['.
  3. [[ ]]关键字可以屏蔽shell特殊符号,比如&&||><可以被认为是条件判断符而不是重定向符。

  4. [ ]中使用-a-o表示逻辑与和逻辑或,[[ ]]中则使用&&||

小括号

  1. $()用于命令替换。
  2. 双小括号(( )):在比较过程中使用高级数学表达式。

大括号

请阅读:All about {Curly Braces} in Bash

  1. ${}用于引用变量。

    $var相比,${var}是一种消除歧义的措施,比如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ var=abc
    $ vartest=ABC
    # $var引用变量'var'
    $ echo $var
    abc
    # 引用变量'vartest'
    $ echo $vartest
    ABC
    # 引用变量'var'并在其后加上'test'字符
    $ echo ${var}test
    abctest
  2. {}表示分组。

Reference