awk单引号或双引号用法

时间:2014-05-28 09:50:42

标签: php awk

为什么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 }"');

......这个,不起作用。

1 个答案:

答案 0 :(得分:3)

GNU Awk manual(强调添加):

  

因为文本中的文本中的某些字符由 shell 处理,所以它们必须在文本中转义。值得注意的是字符$`\",如果要传递的话,所有字符必须在双引号文本中以反斜杠开头在字面上对该计划。 (首先剥离前导反斜杠。)