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

时间:2018-08-10 16:12:29

标签: bash

此输出中'['']'表示什么?

$ 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 个答案:

答案 0 :(得分:0)

您在这里所说的是bash的调试-x标志的输出。首先,它必须运行ps aux,然后必须运行grep ...。然后它必须测试结果。 [...]测试语法本身就是一个表达式,还必须进行评估。

+ '[' ']'是正在执行的测试的表示形式,由bash -x向您显示。

答案 1 :(得分:0)

这意味着ps aux | grep -q memcached扩展为空字符串。

如果没有,您将得到扩展到的内容。

例如 ps aux | grep -q memcached版画

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