Linux

從 /etc/passwd 獲取 UID >= 1000 的使用者

  • August 3, 2019

我正在嘗試使用循環從/etc/passwdUID 等於/大於 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

試試這個,

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}'`

引用自:https://unix.stackexchange.com/questions/533663