Вы также можете подсчитать пользователей с паролями в linux, используя файл /etc/shadow:
awk 'BEGIN { FS=":"; empty = 0; cnt = 0; } { if ($2 !~ "!" && $2 !~ "*") { if ($2 !~ "") emty++; else cnt++; } } END { print "passwords: " cnt "\nempty passwords: " empty }' /etc/shadow
Во FreeBSD я думаю, что вы можете использовать /etc/master.passwd
.head -n 1
выходит после печати первой строки и посылает ЗАПИСЬ писателю (xargs
), чтобы сказать, что не осталось никакого процесса для чтения того, что бы он ни записал. В ответ xargs
делает то, что делает большинство процессов, и убивает его подпроцессы (ping
), печатает предупреждение, вероятно, посылает ПОДПИСЬ своему собственному родителю, а затем убивает себя.
Вы заметите, однако, что так как Вы не установили pipefail
в Вашем скрипте, код выхода полного скрипта равен нулю - код выхода команды sed
.
echo 192.168.1.1 192.168.1.2 192.168.1.3|xargs -n1 ping -w 1
или с помощью grep, видеть только узлы без ping
echo 192.168.1.1 192.168.1.2 192.168.1.3|xargs -n1 ping -w 1|grep -b1 100