Bash set + x没有被打印
有没有人知道如果我们可以说在bash中set +x
而不打印:
set -x command set +x
痕迹
+ command + set +x
但它应该只是打印
+ command
Bash是版本4.1.10(4)。 这一直在困扰我一段时间 – 输出混乱无用的set +x
线,使跟踪设施没有那么有用。
我有同样的问题,我能find一个不使用子shell的解决scheme:
set -x command { set +x; } 2>/dev/null
你可以使用一个子shell。 退出子shell后,设置为x
将丢失:
( set -x ; command )
当我对它感到恼火时,我刚刚解决了这个问题:
shopt -s expand_aliases _xtrace() { case $1 in on) set -x ;; off) set +x ;; esac } alias xtrace='{ _xtrace $(cat); } 2>/dev/null <<<'
这允许您启用和禁用xtrace,如下所示,在这里logging参数如何分配给variables:
xtrace on ARG1=$1 ARG2=$2 xtrace off
你得到的输出如下所示:
$ ./script.sh one two + ARG1=one + ARG2=two