Como ativar o modo de depuração do script de shell no Linux

Como ativar o modo de depuração do script de shell no Linux

Um script é simplesmente uma lista de comandos armazenados em um arquivo. Em vez de executar uma sequência de comandos digitando-os um a um o tempo todo no terminal, um usuário do sistema pode armazenar todos eles (comandos) em um arquivo e invoca repetidamente o arquivo para reexecionar os comandos várias vezes.

Enquanto aprendemos scripts ou durante os estágios iniciais da redação de scripts, normalmente começamos escrevendo scripts pequenos ou curtos com algumas linhas de comandos. E geralmente depuramos esses scripts, fazendo nada mais do que olhar para a produção e garantir que eles funcionem como pretendemos.

No entanto, quando começamos a escrever scripts muito longos e avançados com milhares de linhas de comandos, por exemplo, scripts que modificam as configurações do sistema, executam backups críticos em redes e muito mais, perceberemos que apenas analisar a saída de um script não é o suficiente para encontrar bugs dentro de um script.

Portanto, nessa depuração de scripts de shell na série Linux, examinaremos como ativar a depuração do script de shell, passar para explicar os diferentes modos de depuração do script de shell e como usá -los na série subsequente.

Como iniciar um script

Um script é distinguido de outros arquivos por sua primeira linha, que contém um #! (She-bang - define o tipo de arquivo) e um nome de caminho (caminho para o intérprete) que informa o sistema que o arquivo é uma coleção de comandos que será interpretada pelo programa especificado (intérprete).

Abaixo estão exemplos das "primeiras linhas" em diferentes tipos de scripts:

#!/bin/sh [para sh script] #!/bin/bash [para Bash script] #!/usr/bin/perl [para perl Programação] #!/bin/awk -f [para Awk script] 

Observação: A primeira linha ou #! pode ser deixado de fora se um script contiver apenas um conjunto de comandos do sistema padrão, sem nenhuma diretiva interna de shell.

Como executar um script de shell no Linux

A sintaxe convencional para invocar um script de shell é:

$ script_name argument1… argumenton 

Outra forma possível é especificar claramente o shell que executará o script como abaixo:

$ shell script_name argument1… argumenton 

Por exemplo:

$ /bin /Bash script_name argument1… argumento [para Bash script] $ /bin /ksh script_name argument1… argumento [para Ksh script] $ /bin /sh script_name argument1… argumento [para sh script] 

Para scripts que não têm #! Como a primeira linha e contém apenas comandos básicos do sistema, como o abaixo:

#Script contendo comandos do sistema padrão CD /HOME /$ User Mkdir TMP Echo "TMP Diretório criado em /home /$ user" 

Simplesmente faça -o executável e executá -lo da seguinte forma:

$ chmod +x script_name $ ./script_name 

Métodos para ativar o modo de depuração de scripts de shell

Abaixo estão as principais opções de depuração de scripts do shell:

  1. -v (abreviação de verbose) - diz ao shell que mostre todas as linhas em um script enquanto elas são lidas, ele ativa o modo detalhado.
  2. -n (abreviação de Noexec ou nenhuma ecção) - instrui o shell a ler todos os comandos, no entanto, não os executa. Esta opção ativa o modo de verificação de sintaxe.
  3. -x (abreviação de rastreamento de xtrace ou execução) - diz ao shell para exibir todos os comandos e seus argumentos no terminal enquanto eles são executados. Esta opção permite o modo de rastreamento de shell.

1. Modificando a primeira linha de um script de shell

O primeiro mecanismo é alterando a primeira linha de um script de shell como abaixo, isso permitirá a depuração de todo o script.

#!/BIN/SH Opções (s) 

Na forma acima, a opção pode ser uma ou combinação das opções de depuração acima.

2. Invocando Shell com opções de depuração

O segundo é invocando o shell com opções de depuração da seguinte maneira, esse método também ativará a depuração de todo o script.

$ shell opção (s) script_name argument1… argumenton 

Por exemplo:

Opções $ /Bin /Bash script_name argument1… argumenton 

3. Usando o comando definido interno interno

O terceiro método é usando o comando conjunto embutido para depurar uma determinada seção de um script de shell, como uma função. Esse mecanismo é importante, pois nos permite ativar a depuração em qualquer segmento de um script de shell.

Podemos ativar o modo de depuração usando definir Comando no formulário abaixo, onde a opção é qualquer uma das opções de depuração.

Opção $ SET 

Para ativar o modo de depuração, use:

$ set -eption 

Para desativar o modo de depuração, use:

Opção $ set + 

Além disso, se ativamos vários modos de depuração em diferentes segmentos de um script de shell, podemos desativar todos eles de uma vez assim:

$ set - 

É isso por enquanto com o modo de depuração de scripts de shell. Como vimos, podemos depurar um script inteiro ou uma seção específica de um script.

Nos próximos dois episódios desta série, abordaremos como usar as opções de depuração de scripts do shell para Explique detalhado, Verificação de sintaxe e Depuração de rastreamento de conchas modos com exemplos.

É importante. Até lá, fique conectado a Tecmint.