编写脚本来查找用户进程的所有PID

时间:2014-01-23 12:27:55

标签: bash

我真的想用ps -aux来解决这个问题。 所以我写了剧本:

#!/bin/bash
if [ $# -lt 1 ]; then
        echo -n "No arguments were written"
        read uid
else
        uid=$1
fi
procesy=`ps -aux | awk '{if ($1=="$uid") print$2}'`
echo $procesy

为什么它不起作用? 当我写作./script root时,我只得到空白。

2 个答案:

答案 0 :(得分:3)

这将满足您的需求:

pgrep -U $1

答案 1 :(得分:1)

在脚本中使用awk内的shell变量时遇到问题。使用awk的正确方法应该是:

#!/bin/bash
if [ $# -lt 1 ]; then
        echo -n "No arguments were written"
        read user
else
        user=$1
fi
procesy=`ps aux | awk -v usr=$user '{if ($1==usr) print$2}'`
echo $procesy