加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

为什么sed不能在我的bash脚本中工作?

发布时间:2020-12-14 01:03:46 所属栏目:Linux 来源:网络整理
导读:这是我的代码.我只是想复制一些文件并替换我的Makefile中的一行.参数$1只是我的新.tex文件的名称. #!/bin/bash pwd="./" tex=".tex" pwd=$1$tex cp ~/TeX/matt.sty . cp ~/TeX/mon.tex $pwd cp ~/TeX/Makefile . sed="sed 's/mon.tex/"$1$tex"/g' Makefile M
这是我的代码.我只是想复制一些文件并替换我的Makefile中的一行.参数$1只是我的新.tex文件的名称.

#!/bin/bash                                
pwd="./"                                   
tex=".tex"                                 
pwd=$1$tex                                 
cp ~/TeX/matt.sty .                        
cp ~/TeX/mon.tex $pwd                      
cp ~/TeX/Makefile .                        

sed="sed 's/mon.tex/"$1$tex"/g' Makefile > Makefile"           
$sed

我有以下错误:sed:1:“’s / mon.tex / salut.tex / g’”:无效的命令代码’

ps:我在Mac OS X上使用sed.(所以它是bsd sed)

解决方法

sed的第一个参数字面上是’s / mon.tex /“$1 $tex”/ g'(带单引号).显然sed无法将其解析为命令.

删除单引号可以解决该问题,但重定向(>)仍然无法正常工作.

只是直接运行sed命令($sed变量的重点是什么?我没有得到它)

注意:要使用sed修改文件,请使用sed -i.重定向到您正在处理的同一文件将无法正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读