我想接受用户的输入并将每个值减1。例如,如果用户提供:
0 1 6 8
我想将其更改为:
-1 0 5 7
我的代码看起来像这样,但似乎不起作用:
echo 'Please enter numbers:'
read numbers
IFS=' '
numarray=($numbers)
for i in "${numarry[@]}"
do
(( numarray[i]-- ))
done
echo ${numarray[@]}
但代码似乎不起作用。有任何想法吗?谢谢你的帮助。
答案 0 :(得分:1)
您的代码无法按预期运行,因为for i in ${numarray[@]}
遍历数组元素,其中$i
是实际元素,而(( numarray[i]-- ))
期望$i
为echo 'Please enter numbers:'
read numbers
IFS=' '
numarray=($numbers)
numarray=($numbers)
for i in $(seq 1 ${#numarry[@]}); do
(( numarray[i-1]-- ))
done
echo ${numarray[@]}
是数组元素的索引。试试这个:
{{1}}