从 /etc/passwd 获取 UID >= 1000 的用户

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)

Siv*_*iva 5

尝试这个,

 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)