Como 'definir -x' para scripts diferentes dos meus

Como 'definir -x' para scripts diferentes dos meus

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 xtraceopção definida invocando diretamente basha -xopçã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 xtraceopção para todas as invocações não interativas do Bash. Para fazer isso, defina a BASH_ENVvariável de ambiente com um nome de arquivo adequado e, em seguida, crie esse arquivo com set -xseu 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_ENVno ambiente, expande seu valor se aparecer lá e usa o valor expandido como o nome de um arquivo para ler e executar.

informação relacionada