como canalizar a saída da depuração de bash rastreada?

2

Eu quero canalizar a saída do script rastreado da seguinte forma:

bash -x /path/to/a/script | more 

ou

bash -o xtrace /path/to/a/script | more

e

bash -x /path/to/script > a_file 

ou

bash -o xtrace /path/to/script > a_file'

mas não funcionou. Como é um arquivo dentro de /etc eu não quero editá-lo e como a saída é muito longa não consigo rolar para trás para ver a saída desejada.

Estou fazendo errado?

    
por Pravin 29.05.2015 / 10:43

2 respostas

2

Uso:

bash -x /path/to/a/script |& more
A saída

bash xtrace é gravada no STDERR, enquanto o piping | está apenas fornecendo o STDOUT de bash -x /path/to/a/script a more ou qualquer outro comando no lado direito de | .

|& canalizará tanto o STDOUT quanto o STDERR para more , para que você possa usá-los com more .

Como alternativa, se você está preocupado apenas com o encanamento do xtrace (STDERR), use este:

bash -x /path/to/script 2>&1 >/dev/null | more

Ao redirecionar para um arquivo, se você quiser redirecionar a saída do script e a saída xtrace use qualquer um dos seguintes:

bash -x /path/to/script &>/where/to/save
bash -x /path/to/script >/where/to/save 2>&1

Se você quiser redirecionar apenas o xtrace :

bash -x /path/to/script 2>/where/to/save
    
por heemayl 29.05.2015 / 10:50
1
  

bash -x /path/to/script 2> a_file

deve fazer o trabalho, dessa forma você canaliza stderr para o arquivo, em vez de apenas stdout .

    
por Yuri 29.05.2015 / 10:50