Dash -x失败,出现错误的替换错误

时间:2013-10-26 06:31:56

标签: shell dash-shell

我正在尝试学习如何编写可移植的shell脚本,为此我开始将我的个人实用程序从bash迁移到sh(在我的系统上冲刺)。但是,当我尝试在调试模式下运行脚本时,我遇到了一个错误$ dash -x script

例如,在这个脚本上:

#!/bin/sh
echo hi

如果我以:$ dash script运行它,我会得到'hi'字符串,但是如果我运行它:$ dash -x script或者我在echo之前添加set -x命令: / p>

#!/bin/sh
set -x
echo hi

失败并显示错误:

  

script.sh:3:sc​​ript.sh:错误替换

这使我的脚本调试非常困难。我正在运行ubuntu 12.04 ,短划线 0.5.7-2ubuntu2

1 个答案:

答案 0 :(得分:3)

就在我写完问题的时候,我意识到我正在使用个性化的PS4(用于xtrace模式),我的PS4被定义为:

>>(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }

我暂时改为PS4 =“>>”一切顺利,我现在可以在破折号上调试我的脚本。希望这有助于某人。