Linux 在bash脚本中使用参数和变量时SED中出错
我有一个剧本Linux 在bash脚本中使用参数和变量时SED中出错,linux,bash,shell,sed,Linux,Bash,Shell,Sed,我有一个剧本 将字符串作为参数 使用字符串查找TeX文件 在for循环中-使用SED在中进行替换并编译TeX文件 替换包括更改头名称(和连接),这将在编译后为输出文件提供唯一的名称 当我实时运行这些命令时,它们工作正常,但是执行shell脚本时出现以下错误 ./batchscript: line 12: syntax error near unexpected token `sed' ./batchscript: line 12: ` sed -i "s|--jobname .*MPa|-
./batchscript: line 12: syntax error near unexpected token `sed'
./batchscript: line 12: ` sed -i "s|--jobname .*MPa|--jobname ${filename}${i}MPa|g" $CURRENTFILE".tex"'
脚本如下
DIR=`pwd`
filename=$1
CURRENTFILE=$DIR/$filename
for i in {2,5,8,11}
sed -i "s|--jobname .*MPa|--jobname ${filename}${i}MPa|g" $CURRENTFILE".tex"
sed -i "s|pgfplotstableread{.*MPa.dat}|pgfplotstableread{${i}MPa.dat}|g" $CURRENTFILE".tex"
arara $CURRENTFILE".tex"
done
我尝试了几种语法变体。我也环顾四周,读到它可能必须做一些事情,shell负责将变量传递给sed,但它可能无法工作
任何使用awk或ex的变通方法也可以对我有效您的
for
语句需要do
。如{2,5,8,11}中i的;do
您的for
语句需要一个do
。如{2,5,8,11}中i的;do
您的for
语句需要一个do
。如{2,5,8,11}中i的;执行
。哎呀!典型的星期六晚上语法错误。感谢您的for
语句需要do
。如{2,5,8,11}中i的;执行
。哎呀!典型的星期六晚上语法错误。谢谢