从PS获取PID的Bash shell不起作用

时间:2017-02-19 09:15:53

标签: linux bash shell ubuntu

我正在使用Ubuntu和bash shell。

我无法理解为什么以下命令返回整行而不是PID s:

$ ps -ef | awk  "{print $2}" | head -3
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 feb18 ?        00:00:32 /sbin/init splash
root         2     0  0 feb18 ?        00:00:00 [kthreadd]

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

这是一个shell报价问题。如果是双引号,则shell会扩展" $ 2"到空字符串,因为它未设置。留下awk '{print }'将打印整行。

使用单引号来阻止扩展:

ps -ef | awk '{print $2}' | head -3

顺便说一句,你可以使用ps命令获取pid,awk不是必需的:

ps -efho pid