bash脚本中的sed工作不正常:但它可以在命令行上运行
发布时间:2020-12-15 21:30:56 所属栏目:安全 来源:网络整理
导读:我在命令行上尝试了以下操作,但是当我将它们放在bash脚本中时,我得到一个错误(见下文): sed -e "s/INSERT_ME_HERE/"${ROOT_BUILD_HOME}"/g" ./Doxyfile ./tmp mv ./tmp ./Doxyfilesed -e "s/INSERT_ME_HERE/'${ROOT_BUILD_HOME}'/g" ./Doxyfile ./tmp mv ./
我在命令行上尝试了以下操作,但是当我将它们放在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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |