我正在尝试学习如何编写可移植的 shell 脚本,为此我开始将我的个人实用程序从 bash 迁移到 sh(我的系统上的破折号)。但是,当我尝试在调试模式下运行脚本时,我在所有情况下都会遇到错误$ dash -x script
例如,在这个脚本上:
#!/bin/sh
echo hi
如果我将它运行为: $ dash script
,我会得到'hi'字符串,但是如果我将它运行为:$ dash -x script
或者如果我set -x
在 echo 之前添加命令:
#!/bin/sh
set -x
echo hi
它失败并出现错误:
script.sh:3:script.sh:替换错误
这使得调试我的脚本变得非常困难。我正在运行带有破折号0.5.7-2ubuntu2的 ubuntu 12.04