这是我的代码.我只是想复制一些文件并替换我的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
Run Code Online (Sandbox Code Playgroud)
我有以下错误: sed: 1: "'s/mon.tex/salut.tex/g'": invalid command code '
ps:我在Mac OS X上使用sed.(所以它是bsd sed)
sed的第一个参数是字面意思's/mon.tex/"$1$tex"/g'(带单引号).显然sed无法将其解析为命令.
删除单引号可以解决该问题,但重定向(>)仍然无法正常工作.
只需直接运行sed命令($sed变量的重点是什么?我不明白)
注意:要使用sed修改文件,请使用sed -i.重定向到您正在处理的同一文件将无法正常工作.