Comando Bash 'Set -x'

Comando Bash 'Set -x'

Bash definir O comando é usado para muitos propósitos no Bash e possui muitas opções para ativar ou desativar diferentes tipos de recursos do ambiente do shell. O -x A opção é uma das opções do comando set que é usado para ativar o recurso de depuração do script Bash para solução de problemas. O 'set -x'O comando pode ser usado no terminal ou dentro de qualquer script de bash. Propósitos diferentes para usar o 'set -x'O comando foi descrito neste tutorial.

Ativar depuração

Se o script não mostrar a saída correta ou saída inesperada, esse problema poderá ser resolvido usando a depuração. O recurso de depuração pode ser ativado de diferentes maneiras no script Bash mencionado abaixo.

O recurso de depuração pode ser ativado usando o comando 'set -x' no terminal ou dentro do script Bash usando o comando 'set -x'. O uso do comando 'set -x' foi mostrado na próxima parte do tutorial.
O recurso de depuração também pode ser ativado usando a opção -x no momento da execução do arquivo Bash, como o seguinte comando:

$ Bash -x nome do arquivo.Bash

O recurso de depuração também pode ser ativado usando a linha a seguir no início do script:

#!/bin/sh -x

Desativar a depuração

Requer desativar o recurso de depuração do script Bash depois de resolver o problema. O comando 'set +x' é usado para desativar o recurso de depuração.

Diferentes exemplos do comando 'set -x'

Dois usos diferentes da opção 'set -x' foram mostrados usando exemplos.

Exemplo 1: Ative e desative o recurso de depuração

Crie um arquivo Bash usando o seguinte script que receberá a entrada do usuário antes e depois de usar os comandos 'set -x' e 'set +x'. O valor do primeiro nome será levado e impresso antes de usar o comando 'set -x'. O valor do sobrenome será levado e impresso após o uso do comando 'set -x'. Em seguida, os valores do primeiro nome e o sobrenome serão impressos após o uso do comando 'set +x'.

#!/BIN/BASH
#Take entrada e impressão
Leia -P "Digite seu primeiro nome:" FirstName
eco "Seu primeiro nome é $ primeiro nome"
#Nable the Set -x Comando
set -x
#Tome outra entrada e impressão
Leia -P "Digite seu sobrenome:" LastName
eco "Seu sobrenome é $ lastname"
#Disable the Set X Comando
set +x
#Print As variáveis
eco "Seu nome completo é $ primeiro nome $ lastName"

Saída:

A saída a seguir será impressa após a execução do script acima. De acordo com a saída, cada declaração do script foi impressa após a execução do comando 'set -x'.

Exemplo 2: Script de depuração usando o comando 'set -x'

Crie um arquivo Bash com o seguinte script que receberá um nome de arquivo do usuário para leitura, permitindo o recurso de depuração. O comando 'set -x' foi usado no início do script para ativar o recurso de depuração. Em seguida, um nome de arquivo será retirado do usuário. Se nenhum nome de arquivo for fornecido pelo usuário, uma mensagem será impressa. Se o nome do arquivo retirado do usuário não existir ou não for um arquivo, outra mensagem de erro será exibida. Se o nome do arquivo válido for retirado do usuário, o conteúdo do arquivo será impresso.

#!/BIN/BASH
#Nable a depuração
set -x
#Tome o nome do arquivo do usuário
eco -n "Digite um nome de arquivo:"
Leia fn
#Verifique se o nome do arquivo está vazio ou não
se ["$ fn" == ""];
então
eco "o nome do arquivo está faltando."
#Scecione se o arquivo existe ou não
Elif [ ! -f "$ fn"];
então
#Mensagem de erro da impressão
eco "$ fn não existe."
outro
#Print O conteúdo do arquivo
gato "$ fn"
fi

Saída:

A saída a seguir será exibida após a execução do script acima sem fornecer nenhum nome de arquivo. A saída mostra que o valor vazio foi tomado como o nome do arquivo. A condição 'se' para verificar um nome de arquivo vazia foi devolvida para a entrada vazia. Portanto, a declaração 'Echo' para imprimir a mensagem de erro foi impressa para a opção de depuração e a mensagem de erro: “O nome do arquivo está faltando”Foi impresso.

A saída a seguir aparecerá após a execução do script acima com um nome de arquivo. A saída mostra que a condição 'if' para verificar o nome do arquivo vazio foi retornada falsa e a condição 'se' para verificar o arquivo inexistente foi retornado também. O nome do arquivo de entrada, TestFile.TXT existe no local atual. Então o 'gato'Comando para ler o TestFile.TXT O arquivo foi executado e o conteúdo do arquivo foi impresso.

A saída a seguir aparecerá após a execução do script acima com um nome de arquivo. A saída mostra que a condição 'if' para verificar um nome de arquivo vazio foi retornada falsa e a condição 'se' para verificar um arquivo inexistente foi retornado arquivo1.TXT não existe no local atual. Então o 'gato'Comando para ler o arquivo não foi executado e a mensagem de erro, “arquivo1.txt não existe.”Foi impresso.

Conclusão

A tarefa de depuração é uma parte muito importante de qualquer linguagem de programação para descobrir o erro do código facilmente. A tarefa de depuração é realizada de maneiras diferentes para diferentes linguagens de programação. Várias maneiras de ativar o recurso de depuração do script Bash e os usos do comando 'set -x' para depurar o script Bash foram descritos neste tutorial.