эхо на основе результата grep

Я соглашусь с остальными и предложу LDAP. Если Вы действительно хотите локальные passwd файлы, тем не менее, рассматривают генерацию их от LDAP. Вы могли или генерировать их где-нибудь централизованно и затем распределить их (марионетка, rsync, и т.д.), или у Вас мог быть каждый клиент, генерируют его собственное. Если сервер LDAP недоступен, локальный passwd файл должен все еще там возвратиться. Наличие сервера LDAP там и поддержание информации позволяют Вам идти вперед и использовать или создавать инструменты, в которых Вы нуждаетесь для настройки и управления пользователями, поэтому если Вы когда-нибудь решаете доверять своей сети/набору избыточные серверы, у Вас есть очень простой миграционный путь.

7
задан 20 June 2010 в 23:12
3 ответа

Как насчет:

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 или - тихий или - тихая опция не используется, и выбранная строка найдена.

11
ответ дан 2 December 2019 в 23:22

Не уверенный, что Вы подразумеваете "под одним лайнером" для меня, это - "один лайнер"

Просто добавьте ; 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
2
ответ дан 2 December 2019 в 23:22

Эта версия является промежуточной между версией Weboide и версией радиуса:

if grep --quiet foo bar; then echo "yes"; else echo "no"; fi

Это более читаемо, чем первый, и это излишне не использует $? как последний.

2
ответ дан 2 December 2019 в 23:22

Теги

Похожие вопросы