Como depurar scripts Bash do Linux com ShellCheck

Você está tendo problemas com um script Bash que você escreveu para o seu PC Linux? Em vez de procurar por inúmeros threads no StackExchange para obter ajuda de programação, considere usar a ferramenta ShellCheck para depurar scripts Bash do Linux e encontrar automaticamente erros em seu código.

Obter ShellCheck

ShellCheck é uma ferramenta útil, mas não vem com seu sistema operacional Linux pronto para uso. Em vez disso, se você quiser usá-lo, precisará instalá-lo primeiro. Neste tutorial, abordaremos como instalar o ShellCheck de várias fontes de software oficiais. Além disso, também mostraremos como fazer o programa funcionar através do binário genérico do Linux.

Abra uma janela de terminal e atualize seus pacotes. Em seguida, siga as instruções que correspondem ao seu sistema operacional Linux.

Ubuntu

O ShellCheck está nas fontes oficiais de software do Ubuntu, portanto, instalá-lo é bastante fácil. Em um terminal, use o gerenciador de pacotes Apt e obtenha a versão mais recente do ShellCheck funcionando.

sudo apt install shellcheck

Debian

O Debian Stable tem uma versão mais antiga do ShellCheck pronta para os usuários instalarem. Tenha em mente que esta versão é retida devido à forma como o Debian faz as coisas.

  Os 5 melhores sistemas operacionais Linux para jogos Raspberry Pi

Nota: deseja uma versão mais recente do programa ShellCheck? Siga nosso guia e aprenda como obter um software mais moderno no Debian.

sudo apt-get install shellcheck

Arch Linux

Para obter o ShellCheck no Arch Linux, primeiro você precisa habilitar o repositório de software “Community”. A ativação de “Community” requer a edição do arquivo Pacman.conf. Para editar o arquivo, abra o Pacman.conf no Nano.

sudo nano /etc/pacman.conf

Percorra (com as teclas de seta) e encontre a seção “Comunidade” do arquivo. Remova todas as instâncias do símbolo # (cerca de três linhas). Em seguida, salve as edições pressionando o botão Ctrl + O.

Com as novas edições feitas no Pacman.conf, pressione Ctrl + X para fechar o Nano. Em seguida, ressincronize o Pacman para configurar o acesso ao repositório “Community” do Arch Linux.

sudo pacman -Syyuu

Por fim, instale o ShellCheck no Arch Linux com:

sudo pacman -S shellcheck

Fedora

Para obter a ferramenta de análise de script ShellCheck no Fedora Linux, abra um terminal e use a ferramenta de gerenciamento de pacotes DNF.

sudo dnf install ShellCheck

OpenSUSE

A instalação do ShellCheck no OpenSUSE não requer etapas especiais, pois está nas principais fontes de software da distribuição. Para obtê-lo, digite o seguinte comando do pacote Zypper em uma janela de terminal.

sudo zypper install ShellCheck

Linux genérico

Os usuários de distribuições Linux menos conhecidas que desejam acessar a ferramenta de análise de script ShellCheck devem instalar a versão binária universal. Felizmente, esta versão binária é fácil de instalar e não requer ajustes no código-fonte. Para fazê-lo funcionar, siga os passos abaixo!

  Como instalar o tema de ícone uniforme no Linux

Etapa 1: exporte a versão do ShellCheck que você está prestes a baixar para o seu ambiente de terminal.

export scversion="stable" # or "v0.4.7", or "latest"

Etapa 2: usando a ferramenta de download wget, pegue a versão binária mais recente do ShellCheck.

wget "https://storage.googleapis.com/shellcheck/shellcheck-${scversion}.linux.x86_64.tar.xz"

Etapa 3: extraia o arquivo ShellCheck TarXZ com o comando tar.

tar --xz -xvf shellcheck-"${scversion}".linux.x86_64.tar.xz

Etapa 4: instale o ShellCheck no seu PC Linux com o comando cp.

cp shellcheck-"${scversion}"/shellcheck /usr/bin/

Depurar scripts com ShellCheck

O objetivo principal do ShellCheck é examinar um script (geralmente Bash), detectar comandos mal utilizados e oferecer correções. Para uso básico, faça o seguinte.

Primeiro, CD para onde o script que você gostaria de verificar está no seu PC Linux. Neste tutorial, nosso script está em ~/shell-scripts. O seu pode ser diferente.

cd ~/shell-scripts

Execute o comando ls e visualize todos os arquivos no diretório atual.

  Os 5 melhores plugins de bate-papo de empatia para Linux

Nota: se você pretende usar ShellCheck em um diretório com vários tipos de arquivo, é uma boa ideia combinar grep e ls juntos. Usar esses dois comandos juntos permite filtrar todos os arquivos que não são de script.

ls

Ou combine com grep para visualizar apenas arquivos de script.

ls | grep ".sh"
ls | grep ".bash"

Encontre o nome de um arquivo de script no prompt ls e realce o nome do arquivo com o mouse. Quando estiver pronto, execute-o através do ShellCheck e verifique seu código.

shellcheck name-of-file.sh

ou

shellcheck name-of-file.bash

Imediatamente após a execução do comando shellcheck, ele detectará problemas com seu código e o colocará no prompt do terminal. Leia e aprenda como melhorar sua programação seguindo as sugestões que ela lhe dá.

Salvar relatório ShellCheck em um arquivo

Obter um relatório instantâneo no terminal para sua programação bash é super útil, no entanto, você pode perdê-lo se fechar o terminal. Para contornar a perda de seu relatório de verificação de shell, recomendamos salvar a saída em um arquivo de texto, executando o programa em combinação com o recurso >> no terminal.

shellcheck name-of-file.sh >> ~/Documents/shellcheck-report-name-of-file.sh

ou

shellcheck name-of-file.bash >> ~/Documents/shellcheck-report-name-of-file.bash

Visualize seu relatório salvo no terminal por meio do comando cat.

cat ~/Documents/shellcheck-report-name-of-file.sh | more

ou

cat ~/Documents/shellcheck-report-name-of-file.bash | more