Ainda estou lidando com um bug deoutra perguntaque ficou sem resposta porque não consigo obter informações de depuração.
Tenho scripts executando outros scripts e preciso ver como o tty está sendo desconectado do terminal.
Existe alguma maneira de 'definir -x' globalmente? Não consigo defini-lo no script do problema porque ele é gerado dinamicamente, não por mim, mas gostaria de ver o que há de errado com ele.
Responder1
Invoque o Bash com um conjunto de opções de shell
De acordo comInvocando o Bashseção do manual do Bash,
Todas as opções de caractere único usadas com o set embutido (veja The Set Builtin) podem ser usadas como opções quando o shell é invocado
Isso significa que você pode executar um script Bash com a xtrace
opção definida invocando diretamente bash
a -x
opção e o nome do arquivo do script como argumento, por exemplo,
bash -x /path/to/script
Configurar opção de shell para todos os scripts de shell
Quando você diz “global”, presumo que deseja definir a xtrace
opção para todas as invocações não interativas do Bash. Para fazer isso, defina a BASH_ENV
variável de ambiente com um nome de arquivo adequado e, em seguida, crie esse arquivo com set -x
seu conteúdo:
export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env
Na página de manual:
Quando o bash é iniciado de forma não interativa, para executar um script de shell, por exemplo, ele procura a variável
BASH_ENV
no ambiente, expande seu valor se aparecer lá e usa o valor expandido como o nome de um arquivo para ler e executar.