while循环,用户名在/ etc / passwd中

时间:2013-03-19 17:50:24

标签: linux bash scripting

我如何编写一个while循环,说明:当用户名在/ etc / passwd文件中时,执行(命令)? 我正在尝试使用诸如grep -q "^{usern}:" /etc/passwd之类的命令,但我不确定如何将其作为while循环的条件。

1 个答案:

答案 0 :(得分:3)

要遍历/etc/passwd中的用户并对每个用户执行某些操作,请尝试以下操作:

cut -d: -f1 /etc/passwd | while IFS= read -r user
do
    echo "$user"
    # do something with $user
done

如果要检查/etc/passwd中是否存在特定用户然后执行某些操作,请使用if语句:

if grep -q "^username:" /etc/passwd
then
    # do something
fi