Команды отладки Capture-x в файл в Bash

используя set -x in bash выводит команды, развернутые оболочкой, в stderr. Я хотел бы перенаправить их в файл или канал. Но не весь вывод - только некоторые команды. Что-то вроде:

set -x command.txt  ### <-- command.txt param is made up
echo $A $B
set +x

это поставит отладочный вывод в команду. формат txt.

можно ли это сделать?

1 ответов


С bash 4.1 или более поздней версии:

#!/bin/bash

exec 5> command.txt
BASH_XTRACEFD="5"

echo -n "hello "

set -x
echo -n world
set +x

echo "!"

вывод в stdout (FD 1):

hello world!

вывод команды.txt (FD 5):

+ echo -n world
+ set +x