Olá pessoal,
Esta dica é bem útil para validações durante programação shellscript.
Trata-se do comando getent. Basicamente sua função é buscar informações em bases de informações administrativas do sistema Linux.
Base esta que pode ser: ahosts, ahostsv4, ahostsv6, aliases, ethers, group, hosts, netgroup, networks, passwd, protocols, rpc, services or shadow.
Neste exemplo vamos utilizar a base “passwd” que é amplamente conhecida por quem usa Linux. O que vamos fazer é perguntar ao sistema se um determinado usuário existe ou não no PASSWD do Linux.
Após executado, todo processo do Linux, e também é o caso do getent, alimenta a variável de “status de retorno” que é a $?
Este status de retorno do getent é a resposta à nossa pergunta, que pode ser:
0 Sucesso; As requisições feitas foram encontradas.
1 Número errado ou argumentos inválidos.
2 Uma ou mais das requisições não puderam ser encontradas.
3 Operação não suportada.
Cabe salientar que a mesma funcionalidade deste comando getent também pode ser conseguida através de comandos como:
[hudson@vostrolab ~]$ grep -w <nome_do_usuário> /etc/passwd
O parâmetro -w busca a palavra exata que você passar como parâmetro (no caso o nome do usuário).
A única diferença é que os retornos são um pouco diferentes, como podemos ver no vídeo a seguir, da utilização deste comando na prática.
Segue vídeo explicando como utilizar o comando getent para validar se um usuário existe cadastrado no sistema:
Por: Hudson Murilo dos Santos
Referências: http://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html