我正在尝试在 Bash 中记录命令及其参数(如有必要,评估后(。
我正在尝试使用set -v
:
$ variable=2
$ set -v
$ sleep $variable
sleep $variable
如您所见,它打印sleep $variable
.我想登录sleep 2
。
我的原始命令更复杂,所以我不想逐个echo
每个参数。(这样做可能更容易出错(。
set -v
(或set -o verbose
(将在读取时输出每个命令,而不会扩展内容。
set -x
(或set -o xtrace
(将在执行前输出展开的命令行。 每行前面都有PS4
提示符(通常是+
(,对于作为命令替换的一部分执行的命令,提示符将被"加倍"(++
(。
跟踪将写入$BASH_XTRACEFD
指示的文件描述符(或默认写入 shell 的标准错误(。