Como ecoar comandos do Shell à medida que são executados no Bash
Os comandos de eco no Bash ajudam os usuários e desenvolvedores a entender o que está acontecendo em seus scripts. Ao exibir os comandos à medida que são executados, os usuários podem verificar se o script está funcionando conforme o esperado e identificar quaisquer erros ou comportamentos inesperados. Aqui estão algumas maneiras de ecoar comandos shell no Bash:
Método 1: usando o comando set
O comando set no Bash pode ser usado para ativar ou desativar opções e definir parâmetros do shell. Ao definir o -x opção, você pode ativar o rastreamento do shell, o que fará com que o Bash imprima cada comando antes de ser executado.
#!/bin/bash
definir -x
eco 'Olá, Linux!'
definir +x
A saída deste script incluirá o comando que está sendo executado:
Método 2: Usando a armadilha DEBUG
A armadilha DEBUG é uma armadilha de shell especial que é executada antes de cada comando em um script Bash. Ao definir uma função para o trap DEBUG, você pode imprimir cada comando antes de ser executado:
#!/bin/bash
função depurar {
eco ' $BASH_COMMAND '
}
armadilha depurar DEBUGAR
eco 'Olá Mundo!'
armadilha - DEBUGAR
A saída deste script incluirá o comando que está sendo executado:
Método 3: Usando a opção Bash -x
Você também pode habilitar xtrace modo passando o -x opção para o comando Bash ao executar um script. Para ilustrar o uso de -x A opção aqui é um script Bash simples que apenas imprime uma string usando o comando echo:
#!/bin/basheco 'Olá, Linux!'
Para executar este script com o modo xtrace ativado, você pode executar o script usando a sintaxe abaixo:
bash -x < scipt-file-name >Neste exemplo, o Bash -x comando executa o script com xtrace habilitado, fazendo com que o shell imprima cada comando antes de ser executado. O comando echo então imprime 'Olá Mundo!' para o console:
Conclusão
Ecoar comandos shell à medida que são executados é uma maneira poderosa de depurar scripts Bash. Usando o definir comando, o -x opção e o armadilha DEBUG , você pode facilmente imprimir cada comando antes de ser executado.