我正在尝试/etc/passwd
使用循环从 UID 等于/大于 1000获取用户名for
。下面的简单bash
脚本可以工作,但由于某种原因打印用户名两次。
#!/bin/bash
for userid in `awk -F: '{print $3}' /etc/passwd`
do
if (("$userid" >= 1000)); then
echo "Valid User" :`cat /etc/passwd | grep $userid | awk -F: '{print $1,$3}'`
fi
done
答案1
尝试这个,
awk -F ':' '$3>=1000 {print "Valid User :"$1","$3}' /etc/passwd
也许你可能有像 1000 和 10001 这样的用户 ID。所以你的 grep 会在 for 循环中迭代时导致重复。
尝试作为
echo "Valid User" :`cat /etc/passwd | grep ":$userid:" | awk -F: '{print $1,$3}'`