Bash循环问题求助:输出1-99奇数的代码错误求解析
问题解决:Bash循环输出1-99奇数的错误修正
你的代码存在两个问题:
- 语法空格错误:Bash对条件判断的格式要求严格,
[[之后、]]之前必须保留空格,你的代码里[[$((i % 2))和0 ]]的写法会导致Shell无法正确解析条件表达式,这是报错的核心原因。 - 循环范围冗余:题目要求输出1到99的奇数,你写的
{1..100}会包含100,虽然奇数判断会过滤掉它,但按要求缩小范围到{1..99}更严谨。
修正后的代码如下:
for i in {1..99}; do if [[ $((i % 2)) != 0 ]]; then echo "$i" fi done
另外可以利用Bash序列的步长特性简化代码,直接生成1-99的奇数,无需额外条件判断:
for i in {1..99..2}; do echo "$i" done
内容的提问来源于stack exchange,提问作者uzHerzeg Herzeg
相关产品推荐
相关产品推荐

