我正在尝试使用其参数(在必要时进行评估之后)在Bash中记录命令。
我正在尝试使用set -v
:
$ variable=2
$ set -v
$ sleep $variable
sleep $variable
如您所见,它会打印sleep $variable
。我想改为记录sleep 2
。
我的原始命令更复杂,所以我不想逐个echo
每个参数。 (并且可能更容易出错)。
答案 0 :(得分:1)
set -v
(或set -o verbose
)将在读取时输出每个命令,而不会扩展。
set -x
(或set -o xtrace
)将在执行前输出扩展的命令行。每一行都以PS4
提示符(通常为+
)为前缀,对于作为命令替换的一部分执行的命令,提示符将“加倍”(++
)。
跟踪将写入$BASH_XTRACEFD
指示的文件描述符(或默认情况下为shell的标准错误)。