我有两个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
答案 0 :(得分:1)
我认为使用未经修改的a
脚本是不可能的。但是,如果您能够/愿意修改脚本调用,则可以通过获取适当的脚本来完成。即:
$ cat a
#!/bin/sh
set -o xtrace
. ./b # Note: sourcing ./b
$ ./a
+ . ./b
++ set -o xtrace
++ echo Oook.
Oook.
$