簡體   English   中英

For循環中的奇怪Bash變量分配行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM