打印偶数和奇数

时间:2021-03-28 07:12:47

标签: bash if-statement syntax

现在我的代码看起来像这样

!/bin/bash

read INPUT
for number in $(seq 1 $INPUT); do
        if [ $((number%2)) -eq 0 ]
        else [ $((number%2)) -eq 1 ]; then
           echo $number
        fi
done

但是我得到了下一个错误

./script.sh: line 6: syntax error near unexpected token `else'
./script.sh: line 6: `        else [ $((number%2)) -eq 1 ]; then'

2 个答案:

答案 0 :(得分:1)

您在 then 之后缺少 if 语句。

您可以将变量设置为输入数字的奇偶校验。然后您可以在测试范围内的每个数字时使用该变量。

#!/bin/bash

read INPUT
parity=$((INPUT%2))
for number in $(seq 1 $INPUT); do
    if [ $((number%2)) -eq $parity ]; then
       echo $number
    fi
done

答案 1 :(得分:0)

我认为您正在寻找这样的东西:

#!/bin/bash
read INPUT
str=""
for each in $(seq 1 $INPUT); do
    [[ $((each%2)) -eq 0 ]] && str="$str $each"
done
echo $str

这样做是在 if 语句 $(()) 中执行检查,并且 && 表示如果为真,则执行以下操作,即在我们构建满足条件的字符串时构建一个字符串。

示例:

14
2 4 6 8 10 12 14