1

我正在尝试在 Bash 中记录命令及其参数(在必要时进行评估后)。

我正在尝试使用set -v

$ variable=2
$ set -v
$ sleep $variable
sleep $variable

如您所见,它打印sleep $variable. 我想改为登录sleep 2

我原来的命令比较复杂,不想对echo每个参数一个一个。(而且这样做可能更容易出错)。

4

1 回答 1

1

set -v(或set -o verbose)将在读取时输出每个命令,而不会扩展内容。

set -x(或set -o xtrace)将在执行前输出扩展的命令行。每行前面都有PS4提示符(通常是 a +),对于作为命令替换的一部分执行的命令,提示符将“加倍”(++)。

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

于 2018-05-15T20:22:03.180 回答