嵌套shell xtrace

时间:2015-08-25 13:13:36

标签: shell

我有两个shell脚本:

$ cat a
#!/bin/sh
set -o xtrace
./b

$ cat b
#!/bin/sh
set -o xtrace
echo Oook.

$ ./a
+ ./b
+ echo Oook.
Oook.

是否可以将shell设置为从单独的脚本嵌套xtrace输出?我想看看:

$ ./a
+ ./b
++ echo Oook.
Oook.

请注意,可以在同一脚本的子shell中查看嵌套的xtrace输出:

$ cat c
#!/bin/sh
set -o xtrace
echo $(yes | head -c1)

$ ./c
++ yes
++ head -c1
+ echo y
y

1 个答案:

答案 0 :(得分:1)

我认为使用未经修改的a脚本是不可能的。但是,如果您能够/愿意修改脚本调用,则可以通过获取适当的脚本来完成。即:

$ cat a
#!/bin/sh
set -o xtrace
. ./b               # Note: sourcing ./b
$ ./a
+ . ./b
++ set -o xtrace
++ echo Oook.
Oook.
$