现在我的代码看起来像这样
!/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'
答案 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