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
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!
e como um alias ...
alias checkpwd='_(){ pdbedit -L -v $1 | if grep -Eq "Password must change:\ +0"; then echo "true"; else echo "false"; fi }; _'
Tags command-line bash grep samba linux