Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在尝试在 Bash 中记录命令及其参数(在必要时进行评估后)。
我正在尝试使用set -v:
set -v
$ variable=2 $ set -v $ sleep $variable sleep $variable
如您所见,它打印sleep $variable. 我想改为登录sleep 2。
sleep $variable
sleep 2
我原来的命令比较复杂,不想对echo每个参数一个一个。(而且这样做可能更容易出错)。
echo
set -v(或set -o verbose)将在读取时输出每个命令,而不会扩展内容。
set -o verbose
set -x(或set -o xtrace)将在执行前输出扩展的命令行。每行前面都有PS4提示符(通常是 a +),对于作为命令替换的一部分执行的命令,提示符将“加倍”(++)。
set -x
set -o xtrace
PS4
+
++
跟踪将写入由指示的文件描述符$BASH_XTRACEFD(或默认情况下写入 shell 的标准错误)。
$BASH_XTRACEFD