Melhorar a Apresentaçâo do Codigo [RESOLVIDO]

1. Melhorar a Apresentaçâo do Codigo [RESOLVIDO]

Tiago Eduardo Zacarias
thiago304

(usa Debian)

Enviado em 21/03/2020 - 16:08h

Olá Comunidade,

Gostaria de obter informações sobre melhores práticas ou dicas de como melhorar a organização do Shell Script, obtendo a melhor forma de estruturar os blocos dentro script para ficar mais elegante. Desde já agradeço tendo certeza que este assunto e interessante para muitos da comunidade. Fiquem vontade para exemplificar com algum script se necessário.


Tiago Eduardo Zacarias
LPIC-3
Viva o Linux!!


  


2. MELHOR RESPOSTA

Cézar Augusto
cizordj

(usa Debian)

Enviado em 21/03/2020 - 17:14h

Se tem uma coisa que eu gosto é de dividir tudo em funções de cima pra baixo para facilitar a leitura, também recomendo que leia o livro Clean Code do Robert C. Martin onde explica algumas boas práticas em relação ao código limpo.

https://github.com/cizordj/caesar-code/blob/master/caesar_code.sh

Dá pra dizer que o meu script segue aí uns 20% do que o livro fala.

________________________________________________
O programador tem a mania de achar que tudo é objeto

3. Re: Melhorar a Apresentaçâo do Codigo [RESOLVIDO]

Adriano Siqueira
adrisiq

(usa KDE Neon)

Enviado em 21/03/2020 - 16:50h

Dê uma olhada nesse: https://github.com/AdrianoSiqueira/ShellScript/blob/master/self_maintenance.sh


4. Shell Script

Tiago Eduardo Zacarias
thiago304

(usa Debian)

Enviado em 21/03/2020 - 17:06h

Otimo exemplo meu caro , está bem organizado e bem compacto o código , Eu utilizo muito o recurso de pipe , então fica muito grande algumas linhas conforme pode ser visto no script abaixo , estou trabalhando para tentar deixar mais compacto .. O que vocês acham do uso do pipe ? Podemos contornar para ficar menor ?

https://github.com/tiagozacarias/batch_linux/blob/master/batch_key_bkp.sh


5. Re: Melhorar a Apresentaçâo do Codigo [RESOLVIDO]

Cézar Augusto
cizordj

(usa Debian)

Enviado em 21/03/2020 - 17:23h

Sobre o teu script eu acho que você deveria diminuir a quantidade de linhas em branco, tenta ajuntar mais o case;
case "${1}" in 
-h | --help)

cat << EOF
Uso: "${0}" Opção
Opções Válidas:
-V Exibir Versão da ferramenta
-h Ajuda
backup_dlink Executa backup de todos os equipamentos da Dlink
backup_cisco Executa backup de todos os equipamentos da Cisco
backup_datacom Executa backup de todos os equipamentos da Datacom
backup_extreme Executa backup de todos os equipamentos da Extreme
backup_all Executa backup de todos os equipamentos da planta
clear_backup Limpa arquivos de backup com mais de 30 dias
EOF
;;
-V | --version)
echo "Versão:$version";;
backup_all)
func_exec_cisco
func_exec_extreme
func_exec_datacom
func_exec_dlink;;
backup_datacom) func_exec_datacom;;
backup_dlink) func_exec_dlink;;
backup_cisco) func_exec_cisco;;
backup_extreme) func_exec_extreme;;
clear_backup) func_exec_clear_bkp;;
*)echo "Você precisa passar uma opção válida";;
esac

e sobre os pipes tenta quebrar mais as linhas pra não precisar arrastar para o lado toda vida que o programador quiser ler, como diz no livro "Nenhuma parte do código deve ser ignorada".

________________________________________________
O programador tem a mania de achar que tudo é objeto


6. Shell Script

Tiago Eduardo Zacarias
thiago304

(usa Debian)

Enviado em 21/03/2020 - 18:03h

Otima ideia , a questão das linhas em branco já havia retirado bastante delas, a questão dos pipes e as quebra de linhas vou tentar quebrar mais o que alias e o que mais me incomoda, mas no caso da quebra de linha tem que tentar achar o equilibrio para ficar mais bem apresentável .. No meu ver e meio que uma arte no shell script .. Obrigado pelas dicas e material de referência.

Cizordj escreveu:

Sobre o teu script eu acho que você deveria diminuir a quantidade de linhas em branco, tenta ajuntar mais o case;
case "${1}" in 
-h | --help)

cat << EOF
Uso: "${0}" Opção
Opções Válidas:
-V Exibir Versão da ferramenta
-h Ajuda
backup_dlink Executa backup de todos os equipamentos da Dlink
backup_cisco Executa backup de todos os equipamentos da Cisco
backup_datacom Executa backup de todos os equipamentos da Datacom
backup_extreme Executa backup de todos os equipamentos da Extreme
backup_all Executa backup de todos os equipamentos da planta
clear_backup Limpa arquivos de backup com mais de 30 dias
EOF
;;
-V | --version)
echo "Versão:$version";;
backup_all)
func_exec_cisco
func_exec_extreme
func_exec_datacom
func_exec_dlink;;
backup_datacom) func_exec_datacom;;
backup_dlink) func_exec_dlink;;
backup_cisco) func_exec_cisco;;
backup_extreme) func_exec_extreme;;
clear_backup) func_exec_clear_bkp;;
*)echo "Você precisa passar uma opção válida";;
esac

e sobre os pipes tenta quebrar mais as linhas pra não precisar arrastar para o lado toda vida que o programador quiser ler, como diz no livro "Nenhuma parte do código deve ser ignorada".

________________________________________________
O programador tem a mania de achar que tudo é objeto





7. Shell Script mais compacto

Tiago Eduardo Zacarias
thiago304

(usa Debian)

Enviado em 21/03/2020 - 20:02h

Dei uma melhorada na quebra de linha .

https://github.com/tiagozacarias/batch_linux/blob/master/batch_key_bkp.sh

Obrigado.

Tiago Eduardo Zacarias
LPIC-3
Viva o Linux!!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts