Melhores práticas de programação do Bash

Melhores práticas de programação do Bash
Bash é uma das conchas mais populares disponíveis no Linux. É simples, rápido e leve. Além de interpretar e executar comandos, o Bash pode trabalhar com scripts para automatizar um conjunto específico de tarefas.

Este guia elabora algumas das práticas comuns na programação do Bash.

Bash script

Bash é um programa de shell responsável por interpretar e executar comandos. Além de executar comandos manuais, Bash também suporta scripts. Esses scripts são um conjunto de comandos declarados em um arquivo de texto. Bash Script é uma linguagem de programação simples e acessível para aprender no Linux. É um requisito se você estiver interessado em trabalhos de administração do sistema.

Como qualquer outra habilidade, persistência e repetição ajudarão você a melhorar. Embora não haja conjunto fixo de regras, aqui estão alguns dos hábitos que podem melhorar consideravelmente a qualidade do seu script.

Recuo adequado
O indentamento é uma grande parte da codificação. O recuo adequado é fundamental para ter um código legível e sustentável.

O recuo adequado pode ser um salva -vidas se você estiver trabalhando com vários níveis de lógica. O recuo facilita o reconhecimento das camadas lógicas.

Aqui está um exemplo de script multi-lógico com recuo adequado.

#!/BIN/BASH
Leia -P "Digite um valor" var_x
se [$ ((var_x%2)) -eq 0]; então
saída 0
outro
saída 1
fi

Veja como será o código sem recuo adequado.

#!/BIN/BASH
Leia -P "Digite um valor" var_x
se [$ ((var_x%2)) -eq 0]; então
saída 0
outro
saída 1
fi

Comentando
Comentar é uma das coisas mais importantes quando se trata de entender os códigos. Os comentários devem explicar várias partes do código, especialmente quando é complexo. É fácil ficar confuso sobre várias partes do código, mesmo seus próprios códigos. Se for um grande projeto e outros provavelmente funcionarão no mesmo código no futuro.

Por exemplo, aqui está um script de amostra com e sem comentários.

nome de usuário = $ 1
# Verifique a existência do nome de usuário
Grep ^$ nome de usuário: /etc /passwd
se [$? != 0]; então
eco "não é esse usuário: $ nome de usuário"
saída 1
fi
usuário = $ 1
Grep ^$ nome de usuário: /etc /passwd
se [$? != 0]; então
eco "$ nome de usuário não encontrado"
saída 1
fi

Código de retorno se for algo errado
Quando algo dá errado, retornar um valor diferente de zero é sempre uma boa ideia. Um código pode funcionar de errado a qualquer momento, especialmente com condicionais. Ter um código de devolução para trabalhar pode economizar uma tonelada de problemas. Torna a depuração mais eficaz.

Neste exemplo, determinaremos se um número é estranho ou mesmo. Em vez de imprimir a saída, o código de saída sinalizará qual foi o resultado.

#!/BIN/BASH
Leia -P "Digite um valor" var_x
se [$ ((var_x%2)) -eq 0]; então
saída 0
outro
saída 1
fi

O script existe após o erro
Em muitas situações, Bash continuará executando o script, mesmo quando uma parte específica falhar, impactando mal o restante do script.

Para garantir que o script exista ao enfrentar algum erro fatal, é recomendável ter as seguintes linhas no início.

$ set -o errexit

Às vezes, o Bash também pode tentar usar uma variável não declarada, causando um erro lógico. O uso do comando a seguir garantirá que o Bash pare de executar o script se usar uma variável não declarada.

$ set -O substantivo

Substituição de comando
Em situações, pode ser necessário trabalhar com a saída de um comando específico. Podemos fazer isso usando a substituição de comando.

A subestação de comando tem diferentes maneiras de implementação.

$ eco 'echo “hello world”'
$ echo $ (echo “hello world)

É sempre recomendado usar a segunda opção

Nome variável significativo
As variáveis ​​são parte integrante de um script de bash complexo. Toda variável deve ter um nome adequado que significa seu uso.

Frequentemente, os padrões de nome também podem tempo; As pessoas evitarão digitar alguns personagens extras em troca de ganho de tempo de curto prazo. No entanto, essa prática é uma receita para o desastre. Quando se trata da manutenção de longo prazo de tal código, pode ser complicado para entender o objetivo de uma variável.

Seria melhor se você também fosse consistente em nomear variáveis. Os padrões de nome da variável aleatória também podem levar à confusão no futuro.

Veja os dois códigos de amostra, ambos fazendo a mesma tarefa. Qual código é melhor para entender e trabalhar com?

#!/BIN/BASH
Leia -P "Digite o comprimento:" X
Leia -P "Digite a largura:" Y
z = $ [$ x*$ y]
eco "Área: $ z"
#!/BIN/BASH
Leia -P "Digite o comprimento:" Comprimento
Leia -P "Digite a largura:" Largura
área = $ [$ length*$ width]
eco "Área: $ área"

Em Bash, todas as variáveis ​​de ambiente são nomeadas com cartas maiúsculas. É recomendável usar letras minúsculas para variáveis ​​de script para evitar conflitos.

Usando funções
Na programação bash, uma função é uma maneira de agrupar comandos que podem ser executados posteriormente. Ajuda a reduzir a repetição do código. As funções também tornam o código mais legível e sustentável.

Agora, existem cenários específicos em que as funções fazem sentido. Se você estiver usando um punhado de comandos focados, configurar uma função pode economizar muitos problemas. Se você estiver usando apenas um comando, ter uma função não terá impacto na eficiência.

Igual às variáveis, os nomes de funções devem ser significativos.

função fn_odd ()
Var_x local
Leia -P "Enter Number" var_x
Leia var_x
se [$ ((var_x % 2)) -eq 0]; então
eco "até"
outro
eco "estranho"
fi

Tipos de argumento
Em Bash, não há maneira fixa de declarar um tipo de variável. Pode dar origem a comparar variáveis ​​de tipos de dados conflitantes. Garantir que as variáveis ​​e argumentos sejam do mesmo tipo esperado, economize muitas dores de cabeça.

No exemplo a seguir, o script imprimirá se o argumento é um número ou não.

se ! ["$ 1" -eq "$ 1" 2> /dev /null]
então
eco "Erro: não número"
saída 1
fi

Argumentos ausentes ou ordem de argumento errado
É sempre uma boa ideia assumir que a entrada do usuário provavelmente terá dados incorretos, não importa o quê. A probabilidade é maior quando o usuário precisa inserir mais de um argumento.

Você precisa ter mecanismos de correção de erros nos pontos de entrada do usuário para evitar a catástrofe devido à entrada errada do usuário. Deixar a instrução clara sobre o que o usuário deve fazer.

Saída adequada
Ao executar seus scripts, as pessoas devem saber o que precisam saber. Eles não deveriam ter que ler seu código para entender seu propósito ou o que está fazendo.

Deve haver feedback na tela explicando o que está acontecendo nos bastidores a cada passo. Por exemplo, qual seria a experiência do usuário se o gerenciador de pacotes não imprimisse nenhuma saída significativa em vários estágios de sua operação?

Depuração
Depois de escrever o script, o Bash pode verificar a sintaxe do script quanto a erros sem execução. Para executar uma verificação de sintaxe, use o seguinte comando bash.

$ bash -nn

Como alternativa, o shebang pode permitir a sintaxe ao modo de depuração.

#!/bin/bash -n

Para executar o Bash no modo de depuração, use a bandeira "-x".

$ Bash -xx

Também pode fazer parte do shebang.

#!/bin/bash -x

Pensamentos finais

Estes são apenas um punhado de práticas de programação do Bash. Estes são hábitos simples, porém poderosos, para desenvolver. Esses truques garantirão que seus scripts bash sejam otimizados, legíveis e confiáveis. Você deseja que seus scripts de shell sejam simples e diretos-não precisam espremer o máximo possível usando comandos de sintaxe ou shell muito exóticos.

Computação feliz!