为什么';";集合-v";好像在bash的地下室里工作?

为什么';";集合-v";好像在bash的地下室里工作?,bash,shell,debugging,Bash,Shell,Debugging,看起来set-v在子shell中不起作用?为什么? (set-x在子shell中工作,但输出有点忙) 文件说: -v读取shell输入行时打印它们 在括号中编写子shell时,将读取整个子shell,然后执行它。因此,set-v命令在读取所有命令之后才会执行,因此打印这些命令为时已晚 $ cat foo.sh set -v date set +v > /dev/null 2>&1 $ bash foo.sh date Fri Mar 3 14:52:34 PST 2017

看起来
set-v
在子shell中不起作用?为什么?

set-x
在子shell中工作,但输出有点忙)


文件说:

-v
读取shell输入行时打印它们

在括号中编写子shell时,将读取整个子shell,然后执行它。因此,
set-v
命令在读取所有命令之后才会执行,因此打印这些命令为时已晚

$ cat foo.sh
set -v
date
set +v > /dev/null 2>&1

$ bash foo.sh
date
Fri Mar  3 14:52:34 PST 2017
set +v > /dev/null 2>&1

$ cat foo_subshell.sh
(
  set -v
  date
)

$ bash foo_subshell.sh
Fri Mar  3 14:52:42 PST 2017