Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何调试使用";调用的shell脚本;执行官;?_Bash_Shell_Debugging - Fatal编程技术网

Bash 如何调试使用";调用的shell脚本;执行官;?

Bash 如何调试使用";调用的shell脚本;执行官;?,bash,shell,debugging,Bash,Shell,Debugging,假设我有一个bash脚本foo.bash,它使用exec运行另一个bash脚本: exec bar.bash 现在我正在调试foo.bash和bar.bash。我正在用bash-x运行foo.bash,但它没有在调试模式下运行bar.bash。我应该怎么做才能在调试模式下运行bar.bash 将-x添加到bar.bash的shebang行: #!/bin/bash -x 如果不想修改bar.bash,请将exec行更改为: exec bash -x bar.bash 您还可以从foo.ba

假设我有一个bash脚本
foo.bash
,它使用
exec
运行另一个bash脚本:

exec bar.bash

现在我正在调试
foo.bash
bar.bash
。我正在用
bash-x运行
foo.bash
,但它没有在调试模式下运行
bar.bash
。我应该怎么做才能在调试模式下运行
bar.bash

-x
添加到
bar.bash
的shebang行:

#!/bin/bash -x
如果不想修改
bar.bash
,请将
exec
行更改为:

exec bash -x bar.bash
您还可以从
foo.bash
导出shell选项

export SHELLOPTS

我是否可以不修改
foo.bash
?您可以从调用shell在
-x
中设置:
$set-x;导出SHELLOPTS/foo.bash
-这不需要更改
foo.bash
。您还可以从子shell运行此命令,以便不打印其他所有内容的调试输出:
$(set-x;export SHELLOPTS;/foo.bash)