如何在bash脚本中增加数字?

时间:2019-10-02 16:23:08

标签: bash shell

我正在尝试使用以下脚本从1-99打印奇数。

start=1
while [[ $start -le 100 ]]
do 
    echo $start
    start=start+2

done

但没有获取数字,我的输出看起来像是

1
1+2
1+2+2
1+2+2+2
1+2+2+2+2
1+2+2+2+2+2
1+2+2+2+2+2+2
1+2+2+2+2+2+2+2

我在这里想念什么?

4 个答案:

答案 0 :(得分:3)

您必须使用Aritmetic Expansion

  

算术扩展为在脚本中执行(整数)算术运算提供了强大的工具。

示例:

start=$((start + 2))

我能打印出奇数的最干净代码是:

start=1
while [[ $start -le 100 ]]
do
    echo $((start += 2))
done

答案 1 :(得分:1)

您好尝试这样的事情:

for (( NUM=1; NUM<=100; NUM=NUM+2 )); do
    echo $NUM
done

答案 2 :(得分:1)

像下面这样start+2来包裹

start=$((start+2))

Here is some more details

链接来自This Answer

答案 3 :(得分:0)

如所指出的,您的问题是您没有适当地增加数字,必须使用类似的方法

start=$((start + 2))

((start += 2))

但是,您可以避免整个循环:

printf '%d\n' {1..100..2}