【发布时间】:2017-05-17 10:41:18
【问题描述】:
为什么 awk 命令使用单引号和双引号产生的结果不同?
root@vm90:/root# who | awk "{ print $2 }"
...
root@vm90:/root# who | awk '{ print $2 }'
...
我想在 PHP shell_exec() 函数中使用 awk,该函数在整个代码中使用简单引号。
这...
$output = shell_exec("who | awk '{ print $2 }'");
...有效,但我更喜欢...
$output = shell_exec('who | awk "{ print $2 }"');
...这个,不起作用。
【问题讨论】:
-
$2在双引号内被 bash 扩展。所以事实上,要使用 awk 的$2你需要转义它:who | awk "{ print \$2 }"。