1 linux shell-script passwd uid
/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
Run Code Online (Sandbox Code Playgroud)
尝试这个,
awk -F ':' '$3>=1000 {print "Valid User :"$1","$3}' /etc/passwd
Run Code Online (Sandbox Code Playgroud)
也许你可能有像 1000 和 10001 这样的用户 ID。所以你的 grep 会在 for 循环中迭代时导致重复。
尝试作为
echo "Valid User" :`cat /etc/passwd | grep ":$userid:" | awk -F: '{print $1,$3}'`
Run Code Online (Sandbox Code Playgroud)