2017-09-16 116 views
0

使用參數和變量時,我有一個腳本錯誤SED在bash腳本

  1. 需要一個字符串作爲參數
  2. 使用字符串找到一個TeX的文件
  3. 在for循環 - 使用SED使取代在並編譯的TeX文件
  4. 換人包括改變的報頭的名稱(和連接),這也是輸出文件一個唯一的名稱編譯後

的命令是否正常工作,當我活運行它們,但是執行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或前任何變通辦法也可以爲我工作

+3

您的'for'語句需要'do'。正如在「我在{2,5,8,11}」中那樣; do'。 – Jonesinator

+0

糟糕!經典星期六晚上的語法錯誤。謝謝 –

回答

2

for語句需要一個do。如在for i in {2,5,8,11}; do中。