2013-03-19 2 views
0

Как я могу написать цикл while, который говорит: Пока имя пользователя находится в файле/etc/passwd, do (command)? Я пытаюсь использовать такую ​​команду, как grep -q "^{usern}:" /etc/passwd, но я не уверен, как это сделать как условие цикла while.В то время как loop, имя пользователя в/etc/passwd

+0

Дубликат этого вопроса: http://stackoverflow.com/questions/8551382/while-command-in-bash-if-theres-a-string-in-file-txt-do – HXCaine

ответ

3

Для цикла по пользователям в /etc/passwd и сделать что-то с каждым пользователем, попробуйте следующее:

cut -d: -f1 /etc/passwd | while IFS= read -r user 
do 
    echo "$user" 
    # do something with $user 
done 

Если вы хотите, чтобы проверить, существует ли конкретный пользователь в /etc/passwd, а затем сделать что-то, использовать If- заявление:

if grep -q "^username:" /etc/passwd 
then 
    # do something 
fi 
Смежные вопросы