Pesquisa de site

10 dicas úteis para escrever scripts Bash eficazes no Linux


Shell script é a forma mais fácil de programação que você pode aprender/fazer no Linux. Mais ainda, é uma habilidade necessária para administração de sistemas para automatizar tarefas, desenvolvendo novos utilitários/ferramentas simples, apenas para mencionar alguns.

Neste artigo, compartilharemos 10 dicas úteis e práticas para escrever scripts bash eficazes e confiáveis e incluem:

1. Sempre use comentários em scripts

Esta é uma prática recomendada que não se aplica apenas ao shell script, mas a todos os outros tipos de programação. Escrever comentários em um script ajuda você ou outra pessoa que está analisando seu script a entender o que as diferentes partes do script fazem.

Para começar, os comentários são definidos usando o sinal #.

#TecMint is the best site for all kind of Linux articles

2. Faça um script sair quando falhar

Às vezes, o bash pode continuar a executar um script mesmo quando um determinado comando falha, afetando assim o resto do script (pode eventualmente resultar em erros lógicos). Use a linha abaixo para sair de um script quando um comando falhar:

#let script exit if a command fails
set -o errexit 
OR
set -e

3. Faça uma saída de script quando o Bash usar variável não declarada

O Bash também pode tentar usar um script não declarado que pode causar um erro lógico. Portanto, use a seguinte linha para instruir o bash a sair de um script quando ele tentar usar uma variável não declarada:

#let script exit if an unsed variable is used
set -o nounset
OR
set -u

4. Use aspas duplas para referenciar variáveis

Usar aspas duplas durante a referência (usando um valor de uma variável) ajuda a evitar a divisão de palavras (em relação a espaços em branco) e globbing desnecessário (reconhecimento e expansão de curingas).

Confira o exemplo abaixo:

#!/bin/bash
#let script exit if a command fails
set -o errexit 

#let script exit if an unsed variable is used
set -o nounset

echo "Names without double quotes" 
echo
names="Tecmint FOSSMint Linusay"
for name in $names; do
        echo "$name"
done
echo

echo "Names with double quotes" 
echo
for name in "$names"; do
        echo "$name"
done

exit 0

Salve o arquivo, saia e execute-o da seguinte maneira:

./names.sh

5. Use funções em Scripts

Exceto scripts muito pequenos (com poucas linhas de código), lembre-se sempre de usar funções para modularizar seu código e tornar os scripts mais legíveis e reutilizáveis.

A sintaxe para escrever funções é a seguinte:

function check_root(){
	command1; 
	command2;
}

OR
check_root(){
	command1; 
	command2;
}

Para código de linha única, use caracteres de terminação após cada comando como este:

check_root(){ command1; command2; }

6. Use=em vez de == para comparações de strings

Observe que == é sinônimo de =, portanto, use apenas um único = para comparações de strings, por exemplo:

value1=”linux-console.net”
value2=”fossmint.com”
if [ "$value1" = "$value2" ]

7. Use $ (comando) em vez do ‘comando’ legado para substituição

A substituição de comando substitui um comando por sua saída. Use $ (command) em vez de crases `command` para substituição de comando.

Isso é recomendado até mesmo pela ferramenta shellcheck (mostra avisos e sugestões para scripts de shell). Por exemplo:

user=`echo “$UID”`
user=$(echo “$UID”)

8. Use somente leitura para declarar variáveis estáticas

Uma variável estática não muda; seu valor não pode ser alterado depois de definido em um script:

readonly passwd_file=”/etc/passwd”
readonly group_file=”/etc/group”

9. Use nomes em letras maiúsculas para variáveis de AMBIENTE e letras minúsculas para variáveis personalizadas

Todas as variáveis de ambiente bash são nomeadas com letras maiúsculas, portanto, use letras minúsculas para nomear suas variáveis personalizadas para evitar conflitos de nomes de variáveis:

#define custom variables using lowercase and use uppercase for env variables
nikto_file=”$HOME/Downloads/nikto-master/program/nikto.pl”
perl “$nikto_file” -h  “$1”

10. Sempre execute depuração para scripts longos

Se você estiver escrevendo scripts bash com milhares de linhas de código, encontrar erros pode se tornar um pesadelo. Para corrigir as coisas facilmente antes de executar um script, execute algumas depurações. Domine esta dica lendo os guias fornecidos abaixo:

  1. Como ativar o modo de depuração de Shell Script no Linux
  2. Como executar o modo de depuração de verificação de sintaxe em scripts Shell
  3. Como rastrear a execução de comandos em Shell Script com Shell Tracing

Isso é tudo! Você tem alguma outra prática recomendada de script bash para compartilhar? Se sim, use o formulário de comentários abaixo para fazer isso.