Created
February 13, 2020 15:38
-
-
Save LuanComputacao/a8e01ffdfe3f22789844964a2e90abbc to your computer and use it in GitHub Desktop.
Qualidade de Código: usuarios_case.sh
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#------------------------------------------------------------------------------- | |
# usuarios.sh | |
#------------------------------------------------------------------------------- | |
# | |
# Mostra os logins e nomes de usuários do sistema | |
# Obs: Lê dados do arquivo /etc/passwd | |
# | |
# Luan Roger, Março de 2016 | |
# | |
#------------------------------------------------------------------------------- | |
# Versão 1: Mostra usuário e nomes separados por TAB | |
# Versão 2: Remove pontuação desnecessária | |
# Versão 3: Adicionado suporte a opção -h | |
# Versão 4: Adicionado suporte a opção -V e opções inválidas | |
# Versão 5: Adicionado as opções -s e --sort | |
#------------------------------------------------------------------------------- | |
MENSAGE_USO=" | |
Uso: $(basename "$0") [ OPÇÃO ] | |
OPÇÕES: | |
-h, --help Mostra esta tela de ajuda e sai | |
-V, --version Mostra a versão do programa e sai | |
" | |
MENSAGE_OPCAO_INVALIDA=" | |
Opção inválida: $1 | |
Consulte o menu ajuda: | |
$(basename "$0") -h | |
" | |
ordenar=1 # A Saída deve ser ordenada? | |
# Tratamento das opções | |
case "$1" in | |
-h | --help) | |
echo "$MENSAGE_USO" | |
exit 0 | |
;; | |
-V | --version) | |
echo -n $(basename "$0") | |
grep '^# Versão' usuarios_case.sh | tail -1 | cut -d : -f 1 | tr -d \# | |
exit 0 | |
;; | |
-s | --sort) | |
ordenar=1 | |
;; | |
* ) | |
if test -n "$1"; then | |
echo "$MENSAGE_OPCAO_INVALIDA" | |
exit 0 | |
fi | |
;; | |
esac | |
# Processamento | |
## Extrai a lista | |
lista=$(cut -d : -f 1,5 /etc/passwd) | |
## Ordena a lista | |
if test "$ordenar"='1'; then | |
lista=$(echo "$lista" | sort) | |
fi | |
##Mostra o resultado para o usuário | |
echo "$lista" | tr -d , | tr : \\t | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment