我正在處理一些文件夾,每個文件夾代表一本書的頁面。例如。 「Iliad-001」將是Book = Iliad,Page = 001。變量賦值左側的參數替換 - BASH和陣列
我想循環遍歷所有的文件夾,爲每本書創建一個數組,併爲每個找到的頁面添加一個條目到數組中,這樣我就可以在腳本的末尾輸入echo ${Iliad[@]}
,它會給我它找到的所有頁面的不錯列表。
我遇到的問題是將數值添加到具有動態名稱的數組中。下面是我認爲是直觀的(但顯然不是右)代碼:
for j in */; do
vol_name=$(basename "$j" | sed 's/\(.*\)-[0-9]*/\1/')
page_name=$(basename "$j" | sed 's/.*-\([0-9]*\)/\1/')
$vol_name+=("$page_name")
done
這將返回:
syntax error near unexpected token `"$page_name"'
如果我改變變量賦值給這個$vol_name+="("$page_name")"
我得到一點點接近:
Iliad+=(001): command not found
請參見[BashFAQ/006](http://mywiki.wooledge.org/BashFAQ/006) – 2013-05-10 21:46:40