我在for循環中分配一個變量,我從提供的輸入中創建一個輸出文件名。For循環中奇怪的Bash變量賦值行爲
我從來沒有任何問題與數組或循環之前,但行爲是非常奇怪的。我在代碼中的其他地方使用了類似的循環,它們都可以正常工作。下面的代碼工作正常,變量按預期分配。
count=1
for i in "${INPUT[@]}"
do
local INPUT[$count]=`echo -n "$i" | sed 's/\(.\)/\1\n/g'`
let count=count+1
done
這一切都按預期工作,但下面的代碼不起作用。
count=1
for i in "${INPUT[@]}"
do
local OUTFILE[$count]="$i"
let count=count+1
done
如果我附和了$ INPUT [$計數]或$我得到我的預期結果的價值,但是,當我回聲出的分配之後OUTFILE $ [$ count]的數值,它出來爲[1],[2],[3]等,而不是人的名字,人的名字,人的名字,等
什麼是這裏的'local'關鍵字的目的是什麼? – tripleee 2014-08-29 14:07:04
它在函數裏面 – Arcana 2014-08-29 14:07:59
我以前沒見過這個用法。它是否將整個數組轉換爲局部變量?或者只是這個條目?有沒有這種語法的參考? – tripleee 2014-08-29 14:09:15