我可以PID
使用以下命令显示(第二列):
ps -ef | grep runner | awk {'print$2'}
2432
6346
6348
6350
6352
7407
7410
7416
10824
17305
17494
29658
Run Code Online (Sandbox Code Playgroud)
但相反,我想显示pwdx <PID>
和COMMAND
(第 8 列)。
我怎样才能做到这一点?
不要使用 awk 来过滤 ps 输出,而是使用 ps -o 选项来获得你想要的:
ps -e -o pid,comm
Run Code Online (Sandbox Code Playgroud)
那应该做你上面描述的。有关要打印的更多内容,请参阅 ps 手册页。
更新:我发现我无法使用pwdx
. 试试这个尺寸:
#!/bin/bash
ps -o pid= -o comm= |
while read LINE
do
eval $(echo $LINE |
awk '{pid=$1; comm=$2; printf "echo -n \"%s \"; pwdx %s\n", comm, pid}' )
done
Run Code Online (Sandbox Code Playgroud)
您可能需要添加标志以ps
获取您想要的进程 - 以上仅显示您的用户 ID 的进程。
如果您想打印第 2 列和第 8 列,只需在打印中添加 $8。
ps -ef | grep runner | awk {'print $2" "$8'}
Run Code Online (Sandbox Code Playgroud)