Написання однієї рядкової команди, яка інтерпретує умовний вивід з pdbedit


0

Я хотів би запустити команду в одному рядку, який скаже мені, чи встановлений прапор для зміни пароля користувача під час наступного входу. Ця команда інтерпретує вивід і поверне значення true / false.

Якщо прапор PWMC НЕ встановлений, я отримую такий штамп:

pdbedit -L -v <USER.NAME> | grep "Password must change:"
> Password must change: Wed, 30 Oct 2013 08:54:01 CDT

Якщо встановлено прапор PWMC, команда повертає це:

pdbedit -L -v <USER.NAME> | grep "Password must change:"
> Password must change: 0

Отже, як би я створив команду, яка може бути запущена на одному рядку, який скаже мені через твердження true / false, що прапор PWMC встановлений для даного користувача?

Дякую!

Відповіді:


0

Взявши "return a true / false" для позначення ехо-рядка "true" або "false", це має зробити один:

pdbedit -L -v "$USER_NAME" | if grep -Eq 'Password must change:\ +0'; then echo "true"; else echo "false"; fi

Всього працює. Точно те, що я шукав!
Hamking

@ Hamking: Це смішно. Це не те, про що ви просили. Цей код завжди повертає true і пише true або false рядок до stdout відповідно до прапора PWMC. Не могли б ви виправити своє запитання? ... Ця команда інтерпретує вивід і писати істина / помилка рядок . @tehsven: зворотний слеш перед простором у grep шаблон є непотрібним, але спільним grep реалізацій він не повинен бути шкідливим.
pabouk

0

і як псевдонім ...

alias checkpwd = '_ () {pdbedit -L -v $ 1 | if grep -Eq "Пароль повинен мінятися: 0"; потім echo "true"; else echo "false"; fi}; _ '


Що є причиною визначення псевдоніма? Здається, вона зайва, і навіть перевизначає функцію кожного разу, коли викликається псевдонім. Просто визначте функцію безпосередньо: checkpwd() { pdbedit -L -v "$1" | if grep -Eq "Password must change: +0"; then echo true; else echo false; fi } Також додайте параметр, який слід розширити, між подвійними лапками. Код тоді буде функціональним з іменами користувача, що містять пробіли.
pabouk
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.