此输出中'['']'表示什么?
$ 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
答案 0 :(得分:0)
您在这里所说的是bash的调试-x
标志的输出。首先,它必须运行ps aux
,然后必须运行grep ...
。然后它必须测试结果。 [...]
测试语法本身就是一个表达式,还必须进行评估。
+ '[' ']'
是正在执行的测试的表示形式,由bash -x
向您显示。
答案 1 :(得分:0)
这意味着ps aux | grep -q memcached
扩展为空字符串。
如果没有,您将得到扩展到的内容。
例如
ps aux | grep -q memcached
版画
++ echo true
+ '[' true ']'