Arrays 轻松增加并同时打印值
我需要帮助增加循环中的数组值。问题是变量都是相同的,“Numbers”数组的第二个元素没有递增Arrays 轻松增加并同时打印值,arrays,bash,loops,increment,Arrays,Bash,Loops,Increment,我需要帮助增加循环中的数组值。问题是变量都是相同的,“Numbers”数组的第二个元素没有递增 #!/bin/bash Duration=60 declare -a Numbers=("5" "10") for (( d=1 ; d<=$Duration ; d++ )) do for (( i=0 ; i<${#Numbers[@]} ; i++ )) do if [ "$MYVALA" == "" ]; then
#!/bin/bash
Duration=60
declare -a Numbers=("5" "10")
for (( d=1 ; d<=$Duration ; d++ ))
do
for (( i=0 ; i<${#Numbers[@]} ; i++ ))
do
if [ "$MYVALA" == "" ]; then
MYVALA=${Numbers[i]}
else
MYVALA=$(($MYVALA+1))
fi ;
echo ""
echo "number: ${Numbers[i]}"
echo "-------------"
echo "new value = $MYVALA"
done ;
sleep 1 ;
done ;
我想得到的是:
number: 5
-------------
new value = 6
number: 10
-------------
new value = 11
number: 5
-------------
new value = 7
number: 10
-------------
new value = 12
...
数字5和数字10同时打印,每秒打印一次
感谢您的帮助。这将产生您想要的输出。新值只是数字加上持续时间
#!/bin/bash
Duration=60
Numbers=(5 10)
for (( d=1 ; d<=Duration ; d++ )) ; do
for (( i=0 ; i<${#Numbers[@]} ; i++ )) ; do
let MYVALA=Numbers[i]+d
echo
echo "number: ${Numbers[i]}"
echo '-------------'
echo "new value = $MYVALA"
done
sleep 1
done
#/bin/bash
持续时间=60
数字=(5 10)
对于((d=1;d要增加数组值,请使用((myarray[i]+)
)。要使脚本打印出您描述的值,可以为每个数字保留一个单独的计数器数组
#!/bin/bash
Duration=60
declare -a Numbers=("5" "10")
Counters=( "${Numbers[@]}" )
for (( d=1 ; d<=$Duration ; d++ ))
do
for (( i=0 ; i<${#Numbers[@]} ; i++ ))
do
(( Counters[i]++ ))
echo ""
echo "number: ${Numbers[i]}"
echo "-------------"
echo "new value = ${Counters[i]}"
done ;
sleep 1 ;
done
!/bin/bash
持续时间=60
声明-a数字=(“5”“10”)
计数器=(“${Numbers[@]}”)
对于((d=1;d
#!/bin/bash
Duration=60
declare -a Numbers=("5" "10")
Counters=( "${Numbers[@]}" )
for (( d=1 ; d<=$Duration ; d++ ))
do
for (( i=0 ; i<${#Numbers[@]} ; i++ ))
do
(( Counters[i]++ ))
echo ""
echo "number: ${Numbers[i]}"
echo "-------------"
echo "new value = ${Counters[i]}"
done ;
sleep 1 ;
done