Como depurar scripts Linux Bash com ShellCheck

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

Obter ShellCheck

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

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

Ubuntu

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. Lembre-se de que esta versão é retida devido à forma como o Debian faz as coisas.

Nota: deseja uma versão mais recente do programa ShellCheck? Siga nosso guia e aprenda como obter 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 “Comunidade” 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 Ctrl + O botão.

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

sudo pacman -Syyuu

Finalmente, instale ShellCheck para 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 menos conhecidas do Linux 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 as etapas abaixo!

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

export scversion = " stable "  # ou "v0.4.7" ou "mais recente"

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 em 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 usados ​​incorretamente e oferecer correções. Para uso básico, faça o seguinte.

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

scripts de cd ~ / shell

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

Nota: se você pretende usar ShellCheck em um diretório com vários tipos de arquivo, é uma boa ideia combinar  grep ls  juntos. Usar esses dois comandos juntos permite filtrar todos os arquivos que não sejam 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 destaque o nome do arquivo com o mouse. Quando estiver pronto, execute-o por meio do ShellCheck e verifique seu código.

Como depurar scripts Linux Bash com ShellCheck

shellcheck name-of-file.sh

ou

shellcheck name-of-file.bash

Como depurar scripts Linux Bash com ShellCheck

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 fornecidas.

Salvar relatório ShellCheck em um arquivo

Obter um relatório instantâneo no terminal para a sua programação bash é muito útil, entretanto, você pode perdê-lo se fechar o terminal. Para evitar 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 .

Como depurar scripts Linux Bash com ShellCheck

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

ou

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

Leave a Comment

Como desativar o snap do Firefox no Ubuntu 22.04 LTS

Como desativar o snap do Firefox no Ubuntu 22.04 LTS

Aprenda a desinstalar o Firefox Snap no Ubuntu 22.04 LTS e substituí-lo pela versão DEB. Siga este guia passo a passo para uma experiência melhor.

Como compactar arquivos no Linux mais rápido com Pigz

Como compactar arquivos no Linux mais rápido com Pigz

Pigz é uma das melhores ferramentas para compactar arquivos. Neste guia, você aprenderá a instalar e utilizar essa ferramenta poderosa em seu sistema Linux.

Como instalar e configurar o Samba no Debian 11 Bullseye

Como instalar e configurar o Samba no Debian 11 Bullseye

Se você estiver no Debian 11 Bullseye e precisar configurar um servidor Samba, este guia o ajudará. Aprenda como configurar o Samba para Debian 11!

Transforme qualquer dispositivo em seu segundo monitor no Linux

Transforme qualquer dispositivo em seu segundo monitor no Linux

Precisa de um monitor extra, mas só tem um? Com Deskreen, você pode transformar qualquer smartphone, tablet ou laptop em uma segunda tela no Linux.

Como verificar a temperatura da GPU no Linux

Como verificar a temperatura da GPU no Linux

Aprenda como verificar a temperatura da GPU no Linux usando diversas ferramentas.

Como usar o controlador PS4 no Linux

Como usar o controlador PS4 no Linux

Aprenda como usar o controlador PS4 no Linux com suporte completo e métodos de configuração simples.

Como atualizar para Pop_OS 22.04

Como atualizar para Pop_OS 22.04

O Pop_OS 22.04 foi lançado e com ele vem toneladas de novos recursos. Veja como você pode atualizar sua instalação do Pop_OS para 22.04.

Como fazer backup diretamente no Google Drive no Linux

Como fazer backup diretamente no Google Drive no Linux

Descubra como fazer backup dos seus dados do Linux diretamente no Google Drive utilizando o Duplicati. Siga nosso guia passo a passo para proteger suas informações.

Como aumentar o tamanho da pasta temporária no Linux

Como aumentar o tamanho da pasta temporária no Linux

Aprenda como aumentar o tamanho da pasta temporária no Linux. Siga este guia passo a passo para resolver problemas de espaço no seu diretório temporário.

Como instalar e personalizar o emulador de terminal Kitty no Linux

Como instalar e personalizar o emulador de terminal Kitty no Linux

Kitty é um emulador de terminal com GPU versátil e ágil para Linux. Aprenda a instalar e personalizá-lo para melhorar sua experiência no terminal.