我刚刚注意到,导出它会将它转换为普通变量,在子壳中没有特殊含义.这是bash的安全功能吗? 最佳答案 这是检查功能的片段:
#! /bin/bash
exec 3>| trace.txt
BASH_XTRACEFD=3
set -x
# Something to trace
i=1 ; test "$i" -gt 2
# Now in a subshell
(i=2 ; test "$i" -gt 2)
# Let's export it
export BASH_XTRACEFD
# Again check trace
i=3 ; test "$i" -gt 2
# Now in a subshell
(i=4 ; test "$i" -gt 2)
这是trace.txt:
+ i=1
+ test 1 -gt 2
+ i=2
+ test 2 -gt 2
+ export BASH_XTRACEFD
+ i=3
+ test 3 -gt 2
+ i=4
+ test 4 -gt 2
有用!可能是我们有不同的bash版本.我的是4.3.11(1)-release(x86_64-pc-linux-gnu).你的是啥呢?