[英]Strange Bash Variable Assignment Behaviour in For Loop
我在for循環內分配了一個變量,在該循環中,我從提供的輸入中創建了輸出文件名。
我以前從未遇到過數組或for循環的任何問題,但是行為非常奇怪。 我在代碼中的其他地方都使用過類似的for循環,它們都可以正常工作。 下面的代碼工作正常,並且已按預期分配了變量。
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 [$ count]或$ i的值,則會得到預期的結果,但是,當我在分配后回顯$ OUTFILE [$ count]的值時,其結果為[1],[2] ],[3]等,而不是個人名稱,個人名稱,個人名稱等。
聽起來您正在寫類似
echo $OUTFILE[$count]
你什么時候應該寫
echo ${OUTFILE[$count]}
要將一個數組復制到另一個BASH數組中,您不需要循環,您可以執行以下操作:
OUTFILE=( "${INPUT[@]}" )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.