Я соглашусь с остальными и предложу LDAP. Если Вы действительно хотите локальные passwd файлы, тем не менее, рассматривают генерацию их от LDAP. Вы могли или генерировать их где-нибудь централизованно и затем распределить их (марионетка, rsync, и т.д.), или у Вас мог быть каждый клиент, генерируют его собственное. Если сервер LDAP недоступен, локальный passwd файл должен все еще там возвратиться. Наличие сервера LDAP там и поддержание информации позволяют Вам идти вперед и использовать или создавать инструменты, в которых Вы нуждаетесь для настройки и управления пользователями, поэтому если Вы когда-нибудь решаете доверять своей сети/набору избыточные серверы, у Вас есть очень простой миграционный путь.
Как насчет:
uptime | grep user && echo 'yes' || echo 'no'
uptime | grep foo && echo 'yes' || echo 'no'
Затем у Вас может быть он тихий:
uptime | grep --quiet user && echo 'yes' || echo 'no'
uptime | grep --quiet foo && echo 'yes' || echo 'no'
Из grep страницы руководства:
СТАТУС ВЫХОДА
Обычно, статус выхода 0, если выбранные строки найдены и 1 иначе. Но статус выхода равняется 2, если ошибка произошла, если-q или - тихий или - тихая опция не используется, и выбранная строка найдена.
Не уверенный, что Вы подразумеваете "под одним лайнером" для меня, это - "один лайнер"
Просто добавьте ; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi
после Вас команда grep
bash$ grep ABCDEF /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi
No
bash$ grep nameserver /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi
nameserver 212.27.54.252
Yes
Добавьте флаг-q к grep, если Вы хотите подавить результат grep
bash$ grep -q nameserver /etc/resolv.conf; if [ $? -eq 0 ]; then echo "Yes"; else echo "No"; fi
Yes