BASH,用于循环减去一个数字

问题描述

在BASH中,

我正在尝试创建一个for循环,将2减去一个数字

(免得说number = 8,所以我想打印6,,4,2)

此语法有什么问题?

bot.createContext('CONTEXT_NAME_GOES_HERE','{ParaMETER: VALUE}',sessionPath,session_id,lifespan = 1);

`

谢谢

解决方法

我建议:

#!/bin/bash

number=8
dec=2

for ((i=$number-$dec; i>0; i=$i-$dec)); do
  echo "$i"
done

输出:

6
4
2
,

正确的语法为:

for (( number=8; number>= 0; number=number-2))
do
  echo "$number"
done

输出:

8
6
4
2
0

但是如果您只想要6、4、2,则需要更改范围:

#        here v          v and here
for (( number=6; number>=2; number=number-2))
...

另一种语法是:

$ for number in {6..2..2}
  do         
    echo "$number"
  done
,

当您想保存写((number=number-2))的字符时,可以这样做

for (( number=8; number>0; number-=2)); do
   echo "$number"
done

请注意上下文,它可能会出错:

number=8
while (( number-=2 && number>0 )); do # Example of Wrong use 
   echo "$number"
done

对于此解决方案,您需要其他括号

number=8
while (( ((number-=2)) && number>0 )); do
   echo "$number"
done

这些括号使它很容易出错,因此请不要使用它。我赞成@Cyrus的解决方案。