我有兴趣更新for循环中的数组元素值,但我的更新定义错误,因为输出包含[counter]
。
这是我的代码:
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]
。另外,除了counter
之外,还可以使用i
作为i
数组(两个数组具有相同的大小),而不是使用另一个计数器mem_set
?< / p>
谢谢
答案 0 :(得分:0)
由于对mark a comment as an answer的功能请求仍然被拒绝,我在此处复制上述解决方案。
你可以改变echo“$ mem_set [counter]”来回显“$ {mem_set [counter]}”并查看是否打印出正确的值? - 1_CR
谢谢你的建议。改变格式是有效的,所以现在我得到正确的输出。 - Simply_Me
答案 1 :(得分:-1)
在bash中,您将使用$。
访问变量尝试,
counter=`expr $counter + 1`
或
counter=$(( counter + 1 ))