gpt4 book ai didi

bash - bash 脚本中的 Sed 不工作 : But it works on command line

转载 作者:行者123 更新时间:2023-11-29 09:11:32 24 4
gpt4 key购买 nike

我已经在命令行上尝试了以下操作并且它们有效,但是当我将它们放在 bash 脚本中时出现错误(见下文):

sed -e "s/INSERT_ME_HERE/"${ROOT_BUILD_HOME}"/g" ./Doxyfile > ./tmp && mv ./tmp ./Doxyfile
sed -e "s/INSERT_ME_HERE/'${ROOT_BUILD_HOME}'/g" ./Doxyfile > ./tmp && mv ./tmp ./Doxyfile
sed -e "s/INSERT_ME_HERE/`echo ${ROOT_BUILD_HOME}`/g" ./Doxyfile > ./tmp && mv ./tmp ./Doxyfile

我得到的错误是:

sed: -e expression #1, char 19: unknown option to `s'

但是就像我说的那样,我是从命令行使用它并且它有效:

[mehoggan@hogganz400 Doxygen]$ ROOT_BUILD_HOME=MONKEY; sed -e "s/INSERT_ME_HERE/`echo ${ROOT_BUILD_HOME}`/g" ./Doxyfile | grep MONKEY
INPUT = MONKEY

为什么它在一种情况下有效而在另一种情况下无效?

还设置了 ROOT_BUILD_HOME,我在 shell 脚本中的 sed 表达式之前回显了它。

echo `date`: "Going to run doxygen on source and move to ${ROOT_BUILD_HOME}";

最佳答案

我猜测 ROOT_BUILD_HOME/ 开头,sed 将其解释为替换字符串的结尾。我对吗?如果是这样,请尝试使用不同的分隔符:

sed -e "s#INSERT_ME_HERE#${ROOT_BUILD_HOME}#g" ./Doxyfile > ./tmp && mv ./tmp ./Doxyfile

关于bash - bash 脚本中的 Sed 不工作 : But it works on command line,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8827097/

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