Bash 中的调试器

Bash 中的调试器

我用

sh -xv my_script.sh

调试 /bin/sh 脚本。如何调试 /bin/bash 脚本?

我收到以下错误,我需要知道需要编辑的行。

# ./batch_master.sh

'@'10.10.10.10.' (using password: NO)user 'companycuser

答案1

这不管用吗?

bash -x ./batchmaster_sh

答案2

编辑脚本,在 shell 命令行中添加 -x 选项,例如:

#!/bin/sh -x

或者

#!/bin/bash -x

它将打印所有已执行的命令,您可以看到之后执行了什么。

答案3

自本世纪初以来,bash 的调试器就一直存在。请参阅http://bashdb.sourceforge.net/

如果您要使用set -x追踪,我建议将 PS4 设置为:

 PS4='(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]} -  [${SHLVL},${BASH_SUBSHELL}, $?]
'

相关内容