Попробуйте это:read
имеет встроенную опцию тайм-аута -t
!
while read -t 10 LOGLINE
do
[[ "${LOGLINE}" == *"Finished building"* ]] && pkill -P $$ tail
done
Вышеприведенное заканчивается после 10 seconds
. Укажите требуемый тайм-аут в seconds
. Подробнее см.man read
read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name...]
Попробуйте что-нибудь в этом роде:
awk -F: '{if ($3 >= 1000) {print "Username: " $1 "\nPassword: " $2 "\nUid: " $3 "\nGid: " $4 "\nComment: " $5 "\nHome: " $6 "\nShell: " $7 "\n---"}} /etc/passwd
Можно было бы сделать это с getent
и awk
…
getent passwd Erik | awk -F: '{print "Username: " $1 "\nPassword: " $2 "\nUid: " $3 "\nGid: " $4 "\nComment: " $5 "\nHome: " $6 "\nShell: " $7 "\n"}'
… но пора вспомнить старую команду, и что не все является упражнением в awk
илиperl
:
finger -l -k Erik
Обратите внимание, что в некоторых операционных системах может отсутствовать параметр -k
. (Он исключает некоторую информацию, которой вы не интересовались. )Но -l
является довольно универсальным.