我正在尝试使用以下脚本从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
我在这里想念什么?
答案 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)
答案 3 :(得分:0)
如所指出的,您的问题是您没有适当地增加数字,必须使用类似的方法
start=$((start + 2))
或
((start += 2))
但是,您可以避免整个循环:
printf '%d\n' {1..100..2}