代码之家  ›  专栏  ›  技术社区  ›  american-ninja-warrior

bash-ex输出[duplicate]中+'[']'的含义

  •  0
  • american-ninja-warrior  · 技术社区  · 7 年前

    “['']”在这个输出中表示什么?

    $ bash -ex ~/bin/client_services 
    + : starting daemons reqd. for clients
    ++ ps aux
    ++ grep -q memcached
    + '[' ']'
    

    我的源文件是:

    if [ `ps aux | grep -q memcached` ]; then
      echo 'Memcached exists'
    fi
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   erik258    7 年前

    你在这里说的是调试的输出 -x bash的旗帜。首先它必须运行 ps aux grep ... . 然后必须测试结果。这个 [...] 测试语法本身就是一个表达式,也必须进行计算。

    + '[' ']' 正在执行的测试的表示,由 bash -x .

        2
  •  0
  •   Petr Skocik    7 年前

    ps aux | grep -q memcached 展开为空字符串。

    如果没有,你会得到它扩展到的。

    例如。, ps aux | grep-q memcached

    ++ echo true
    + '[' true ']'