我需要使用带有类型名称的进程ps打印UID PID PPID PRI NI VSZ RSS STAT TTY TIME列 .
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time | grep $2 > $1
cat $1
echo "enter pid of process to kill:"
read pid
kill -9 $pid
但是,当我使用带有参数$ 2 = bash的此命令时,它没有打印任何内容(此过程存在)
UPDATE
GNU nano 2.0.6
File: file2
ps o uid,pid,ppid,ni,vsz,rss,stat,tty,time,command | grep $2 | awk '{print $1,$2,$3,$4,$5,$6,$7,$8,$9}' > $1
cat $1
echo "enter pid of process to kill:"
read pid
kill -9 $pid
这对我有用,但实际上这个解决方案恕我直言并不是最好的 . 我使用shadow column命令,在grep名称和打印所有列之后排除命令 .
1 回答
您始终可以使用两阶段方法 .
1.)找到想要的
PID
. 为此使用最简单的ps
ps -o pid,comm
只打印两列,如:所以很容易(和 noise-less ,没有错误的触发器) .
cut
只是提取PID . 例如 . 该版画
2.)现在你可以使用
-p
标志将找到的PIDs
提供给另一个ps
,因此完整的命令是:产量
例如使用
$2
的解决方案是