Я знаю, что есть способ записать выходные данные оболочки bash в файл. Тем не менее, я хочу знать, какие команды были выполнены приложением, поскольку некоторые из этих выполнений не выводятся в виде вывода оболочки.
Итак, есть ли способ записать команды, включая выходные данные, которые были выполнены в файл?
Если вы запустите скрипт bash, вызвав его с помощью:
bash -x yourbashscript.sh
, вы увидите как команды, так и выходные данные, выдаваемые командами run.
Если вы выполните свой сценарий с помощью -x
(например, bash -x <script>
), вы увидите все выходные данные. Если вы хотите запустить его как обычно, не видя вывода (но также перенаправить его в файл), вы можете сделать bash -x <script> 2>/dev/null
Обычно бит -x
печатает в stderr (2), а не в stdout (1). ).
Вы можете set -x
из скрипта, где вы хотите (и set +x
, когда нет) и перенаправить все STDERR в файл, как указано выше (scriptname.bash 2>coolfile.txt
).
В дальнейшем вам придется прибегнуть к Perl или Python.