打印偶数和奇数

print even and odd numbers

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

!/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'

您在 if 之后缺少 then 语句。

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

#!/bin/bash

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

我想你正在寻找这样的东西:

#!/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