Bash 带有评估参数的详细命令

Bash verbose command with evaluating parameters

我正在尝试在 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 提示(通常是 +),对于作为命令替换的一部分执行的命令,提示将是 "doubled up"(++)。

跟踪将写入 $BASH_XTRACEFD 指示的文件描述符(或默认情况下 shell 的标准错误)。