微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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的解决方案。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。