设置在执行每个命令之前打印每个命令的 Bash 脚本的最佳方法是什么?
这对于调试目的非常有用。
我已经尝试过了:
CMD="./my-command --params >stdout.txt 2>stderr.txt" echo $CMD `$CMD`
它应该首先打印:
./my-command --params >stdout.txt 2>stderr.txt
然后执行./my-command --params,将输出重定向到指定的文件。
./my-command --params
set -o xtrace
或者
bash -x myscript.sh
这也适用于标准 /bin/sh 以及 IIRC(那么它可能是 POSIX 的东西)
请记住,有 bashdb ( bash Shell Debugger, release 4.0-0.4)
bash Shell Debugger, release 4.0-0.4
要恢复正常,请退出子 shell 或
set +o xtrace