Escrevendo um comando de linha única que interpreta a saída condicional do pdbedit

0

Eu gostaria de executar um comando em uma única linha que me dirá se o sinalizador está definido para a senha de um usuário a ser alterada no próximo login. Este comando interpretará a saída e retornará um verdadeiro / falso.

Se o sinalizador PWMC NÃO estiver definido, receberei um carimbo de data como este:

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

Se o sinalizador PWMC estiver definido, o comando retornará isso:

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

Então, como eu poderia compor um comando que pudesse ser executado em uma única linha que me diria, por meio de uma declaração true / false, que o sinalizador PWMC está configurado para um determinado usuário?

Obrigado!

    
por Hamking 13.08.2013 / 23:19

2 respostas

0

Tomando "return a true / false" para significar echo da string "true" ou "false", então este one-liner deve fazê-lo:

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

e como um alias ...

alias checkpwd='_(){ pdbedit -L -v $1 | if grep -Eq "Password must change:\ +0"; then echo "true"; else echo "false"; fi }; _'

    
por 15.08.2013 / 05:27