2013-12-08 174 views
0

對於Bash專家來說,這可能是一個簡單的問題,但您能否幫我糾正我的腳本。Bash批處理文件重命名

我想將目錄中的每個.png文件都重命名並保存到另一個文件夾中。我想取第一個文件並將其命名爲「SV314r.png」,下一個文件應該是「SV314v.png」,下一個文件應該是「SV315r.png」,然後是下一個「SV315v.png」,依此類推。

它需要從r替換爲v,爲每個folio頁碼指示「front(recto)」和「back(verso)」。我得到的錯誤與我的「如果」條件,並與我試圖增加「NUM」變量和R開關的「側面」變量訴

num=314 
side="r" 
for file in *.png 
do 

    cp "${file}" "../rename/SV"$num$side".png" 

    if [ $side == "r" ]; then 
     num=$num 
     side="v" 
    else 
     num=$num + 1 
     side="r" 
    fi 
done 

回答

0

這裏唯一的問題是與算術評估bash

通過

num=$(($num + 1)) 

替換

num=$num + 1 

此外變量擴展發生雙引號內。因此額外的報價是沒有必要的。

cp "${file}" "../rename/SV${num}${side}.png" 
+0

我仍然得到同樣的錯誤:./filerename.sh:第10行:[:缺少']」 ./filerename.sh:行14民:沒有找到命令 ./filerename。 sh:第15行:side:command not found – Jeff

+0

@Jeff檢查'num'和'='符號之間是否有空格。不應該有。 –