我正在使用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]
有什么建议吗?
答案 0 :(得分:5)
这是一个shell报价问题。如果是双引号,则shell会扩展" $ 2"到空字符串,因为它未设置。留下awk '{print }'
将打印整行。
使用单引号来阻止扩展:
ps -ef | awk '{print $2}' | head -3
顺便说一句,你可以使用ps
命令获取pid,awk
不是必需的:
ps -efho pid