gpt4 book ai didi

shell - Dash -x 失败并出现错误替换错误

转载 作者:行者123 更新时间:2023-12-04 04:36:55 26 4
gpt4 key购买 nike

我正在尝试学习如何编写可移植的 shell 脚本,为此我开始将我的个人实用程序从 bash 迁移到 sh(我的系统上的破折号)。然而,当我尝试在 Debug模式下运行脚本时,在所有情况下都会出现错误 $ 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: Bad substitution



这使得调试我的脚本变得非常困难。我正在运行 ubuntu 12.04 带破折号 0.5.7-2ubuntu2

最佳答案

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

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

我暂时更改为 PS4=">>"并且一切正常,我现在可以在 dash 上调试我的脚本。希望这可以帮助某人。

关于shell - Dash -x 失败并出现错误替换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com