我有興趣更新for循環中的數組元素值,但由於輸出包含[counter]
,所以我的更新定義錯誤。 這裏是我的代碼:更新For循環Bash中的數組值
declare -a mem_set=(0 0 0 0 0 0 0)
counter=0
for i in "${domain_path[@]}"
do
cd $i
echo "$(pwd)"
for mLine in $(grep 'default.default.minmaxmemory.main' start_params.properties)
do
echo "$mLine"
done
l_bound="Xmx"
r_bound="m"
mem_set[counter]=$(echo "$mLine" | sed -e "s/.*${l_bound}//;s/${r_bound}.*//")
echo "$mem_set[counter]"
let counter=counter+1
done
環路和$(echo "$mLine" | sed -e "s/.*${l_bound}//;s/${r_bound}.*//")
運行很好,但我不能設法得到正確的輸出。我的更新聲明缺失了什麼?它的輸出是2048[counter]
。此外,除了使用i
之外的另一個計數器counter
,也可以使用i
代替mem_set
數組(兩個數組的大小相同)?
謝謝
你可以改變'echo「$ mem_set [counter]」'echo'$ {mem_set [counter]}「'看看是否打印出正確的值? – iruvar 2013-04-26 19:54:36
您的內循環與'grep'def ... main'start_params.properties'完全相同。 – chepner 2013-04-26 20:02:22
@ravoori感謝您的建議。改變格式的工作,所以現在我得到正確的輸出。 – 2013-04-26 21:41:26