gpt4 book ai didi

linux - 在 bash 脚本中使用参数和变量时 SED 出错

转载 作者:太空宇宙 更新时间:2023-11-04 09:17:00 25 4
gpt4 key购买 nike

<分区>

我有一个脚本

  1. 接受一个字符串作为参数
  2. 使用字符串查找 TeX 文件
  3. 在 for 循环中 - 使用 SED 进行替换并编译 TeX 文件
  4. 替换包括更改 header 名称(和连接),在编译后为输出文件提供唯一名称

当我实时运行这些命令时它们工作正常,但是执行 shell 脚本时出现以下错误

./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

我尝试了几种语法变体。我也环顾四周,读到它可能必须做一些负责将变量传递给 sed 的 shell,它可能无法工作。

使用 awk 或 ex 的任何变通方法也适用于我

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