/etc/passwd
루프를 사용하여 1000보다 크거나 같은 UID에서 사용자 이름을 얻으 려고 합니다 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가 있을 수 있습니다. 따라서 for 루프에서 반복할 때 grep이 중복을 발생시킵니다.
다음과 같이 시도하다
echo "Valid User" :`cat /etc/passwd | grep ":$userid:" | awk -F: '{print $1,$3}'`