Как передать вывод трассированной отладки Bash?

Я хочу передать вывод трассируемого сценария следующим образом:

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

или

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

и

bash -x /path/to/script > a_file 

или

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

но не сработало. Поскольку это файл внутри /etc, я не хочу его редактировать, и поскольку вывод слишком длинный, я не могу прокрутить назад, чтобы увидеть желаемый результат.

Я делаю это неправильно?

2
задан 29 May 2015 в 19:36

2 ответа

Использование:

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

bash вывод xtrace записан в STDERR при передаче по каналу | Вы просто даете STDOUT bash -x /path/to/a/script кому: more или любая другая команда на правой стороне |.

|& передаст по каналу и STDOUT и STDERR к more таким образом, можно использовать их обоих с more.

Поочередно, если Вы просто обеспокоены передачей по каналу xtrace (STDERR) только, используйте это:

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

При перенаправлении в файл, если Вы хотите перенаправить и вывод сценария и xtrace выходное использование любое из следующего:

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

Если Вы хотите перенаправить только xtrace:

bash -x /path/to/script 2>/where/to/save
3
ответ дан 29 May 2015 в 19:36

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

должен сделать задание, этот способ, в противоположность которому Вы передаете по каналу stderr в файл, всего stdout.

0
ответ дан 29 May 2015 в 19:36

Другие вопросы по тегам:

Похожие вопросы: