Práticas recomendadas e dicas para escrever scripts de shell como pro

Práticas recomendadas e dicas para escrever scripts de shell como pro

O script de shell é uma ferramenta poderosa para a automação do DevOps. Ele permite automatizar tarefas repetitivas, gerenciar e configurar sua infraestrutura e otimizar seus processos de implantação. No entanto, escrever scripts de shell eficazes exigem as melhores práticas e o uso de certas técnicas para tornar seu código eficiente, modular e sustentável.

Neste artigo, discutiremos algumas das melhores práticas e dicas para scripts de shell que podem ajudá -lo com sua automação de DevOps.

1. Use nomes de variáveis ​​significativos

Usar nomes de variáveis ​​significativos podem ajudar a tornar seu código mais legível e compreensível. Também facilita a manutenção de seu código se precisar modificá -lo no futuro.

Aqui está um exemplo de uso de nomes de variáveis ​​significativos em um script de shell:

#!/bin/bash # Defina a data atual current_date = $ (data +%y-%m-%d) # imprima a data atual eco "A data atual é: $ current_date"
1234567#!/bin/Bash # Definir o datecurrent_date atual = $ (data +%y-%m-%d) # imprima o dateecho atual "A data atual é: $ current_date"

Neste exemplo, usamos a variável "data atual" Para armazenar a data atual e depois imprimi -la usando o Echo. Isso deixa claro o que a variável está armazenando e como ela está sendo usada no script.

2. Use a verificação de erros

A verificação de erros é uma parte importante da script de shell, especialmente para a automação do DevOps. Ajuda a capturar erros desde o início e impedi -los de causar problemas na linha.

Aqui está um exemplo de uso da verificação de erros em um script de shell:

#!/BIN/BASH # Verifique se existe um arquivo se [ ! -f/caminho/para/arquivo]; então eco "erro: o arquivo não existe."Sair 1 Fi # Continue com o restante do script
123456789#!/BIN/BASH # Verifique se existe um arquivo [ ! -f/caminho/para/arquivo]; então eco "erro: o arquivo não existe."Sair 1fi # continue com o restante do script

Neste exemplo, usamos a instrução IF para verificar se existe um arquivo. Se o arquivo não existir, imprimimos uma mensagem de erro e saímos do script com um código de status diferente de zero. Isso nos permite pegar o erro desde o início e impedir que o script continue e potencialmente causando mais problemas.

3. Use o recuo

O recuo é uma parte importante de tornar seu código mais legível e compreensível. Pode ajudá -lo a ver a estrutura do seu código rapidamente e facilitar o acompanhamento.

Aqui está um exemplo de uso de indentação em um script de shell:

#!/bin/bash # loop através de uma lista de arquivos para arquivo em/path/to/files/*; # verifique se o arquivo é um diretório se [-d "$ arquivo"]; Em seguida, # imprima o nome do diretório Echo "Diretório: $ FILE" ELSE # IMPRIM O NOME DO ARQUIVO ECHO "FILE: $ FILE" FI
12345678910111213#!/bin/bash # loop através de uma lista de arquivos para arquivos em/path/to/files/*; # verifique se o arquivo é um diretório se [-d "$ arquivo"]; Em seguida, # imprima o nome do diretório Echo "Diretório: $ FILE" ELSE # IMPRIM O NOME DO ARQUIVO ECHO "FILE: $ FILE" FIDONE

Neste exemplo, usamos o recuo para mostrar a estrutura do script. O loop for recuado um nível e as declarações if são recuadas outro nível. Isso facilita a ver quais blocos de código estão aninhados dentro de quais outros blocos.

4. Use opções de linha de comando

As opções de linha de comando são uma ferramenta poderosa para script de shell. Eles permitem que você passe argumentos ao seu script e personalize seu comportamento com base nesses argumentos.

Aqui está um exemplo de uso de opções de linha de comando em um script de shell:

#!/BIN/BASH # Opções de linha de comando parse enquanto getopts ": f: d:" opt; do caso $ opt em f) # defina o arquivo de entrada input_file = $ optarg ;; d) # Defina o diretório de saída output_dir = $ optarg ;; \?) eco "Opção inválida: -$ optarg"> & 2 Exit 1 ;; :) eco "opção -$ optarg requer um argumento."> & 2 Exit 1 ;; ESAC feito # Faça algo com o arquivo de entrada e o diretório de saída
12345678910111213141516171819202122232425#!/bin/bash # parse-line line optionSwhile getopts ": f: d:" opt; do caso $ opt em f) # defina o arquivo de entrada input_file = $ optarg ;; d) # Defina o diretório de saída output_dir = $ optarg ;; \?) eco "Opção inválida: -$ optarg"> & 2 Exit 1 ;; :) eco "opção -$ optarg requer um argumento."> & 2 Exit 1 ;; Esacdone # Faça algo com o arquivo de entrada e o diretório de saída

5. Evite codificação

Ao criar scripts de shell para automação, evite valores de codificação de hard-codificadores, como endereços IP, caminhos de arquivo ou outros detalhes específicos do sistema. Em vez disso, use variáveis ​​ou arquivos de configuração para armazenar e fazer referência a esta informação. Isso tornará o script mais portátil e fácil de manter no futuro.

Por exemplo, em vez de codificar um caminho de arquivo como “/Var/log/mensagens”, Use uma variável como $ Log_path:

#!/bin/bash log_path = "/var/log/mensagens" Cat $ log_path
12345#!/bin/bash log_path = "/var/log/mensagens" Cat $ log_path

6. Use declarações condicionais

As declarações condicionais são úteis em scripts de shell para tomar decisões com base em determinadas condições. A declaração condicional mais comum em Bash é a declaração se.

#!/bin/bash se [-e/tmp/arquivo.txt] então eco "o arquivo existe" else eco "não existe" fi
12345678#!/bin/bash se [-e/tmp/arquivo.txt] então eco "o arquivo existe" else eco "não existe" fi

Este script verifica se o arquivo “/TMP/arquivo.TXT" existe. Se isso acontecer, imprime "O arquivo existe", E se não acontecer, imprime "Arquivo não existe".

7. Use funções

Funções são blocos de código que podem ser chamados várias vezes de dentro de um script. Eles ajudam a manter o código organizado e facilitar a manutenção.

#!função/bin/bash check_disk_space df -h check_disk_space
1234567#!função/bin/bash check_disk_space df -h check_disk_space

Este script define uma função “Check_disk_space” que executa o "DF -H" comando para mostrar o uso do espaço em disco. A função é então chamada no final do script.

8. Use log

O registro é uma parte importante do script de shell para o DevOps, porque ajuda a solucionar erros e rastrear a execução do script. O comando Logger pode ser usado para enviar mensagens para o log do sistema.

#!/bin/Bash função check_disk_space df -h logger "espaço de disco checked" check_disk_space
12345678#!/bin/Bash função check_disk_space df -h logger "espaço de disco checked" check_disk_space

Este script envia uma mensagem para o log do sistema usando o comando logger quando a função check_disk_space for chamada.

Conclusão

O script de shell é uma habilidade essencial para os profissionais do DevOps. Seguindo essas práticas e dicas recomendadas, você pode criar scripts mais eficazes e sustentáveis ​​para automação e administração do sistema. Lembre -se sempre de testar seus scripts completamente e usar o controle de versão para rastrear as mudanças.