Mar*_*itz 3 debugging bash shell
看起来set -v在子 shell 中不起作用?为什么?
(set -x确实可以在子 shell 中工作,但输出有点忙)。
$ 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
Run Code Online (Sandbox Code Playgroud)
文档说:
-v在读取 shell 输入行时打印它们。
当您在括号中编写子 shell 时,将读取整个子 shell,然后执行它。因此,直到读取完所有命令后set -v才会执行该命令,因此打印它们为时已晚。
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |