Bash 脚本给出 n 个数字并打印偶数

问题描述 投票:0回答:6

我正在尝试编写一个 bash 脚本

“给定一个大于 1 的正整数 N,编写一个脚本来显示 0 到 N 之间的偶数。 例如:数字 12 已被读取。这 程序必须有输出:0、2、4、6、8、10 和 12;“

到目前为止我确实是这样的:

ex5.sh

#!/bin/bash

echo "Number :"
read num;

for (( i = 1; i >= $num; i++ ))
do
   if [ $(($i % 2)) -eq 0 ]
   then
        echo $i
   fi
done

当我编译时,它不打印数字。我找不到问题出在哪里

我也尝试使用 for-in 循环

#!/bin/bash

echo "Number :"
read num;

for i in $num
do
   if [ $(($i % 2)) -eq 0 ]
   then
        echo $i
   fi
done

这次只打印我作为输入输入的数字。例如,我在终端中输入 4,它也会打印 4

非常感谢

linux bash shell
6个回答
1
投票

这样可以让你的代码正常工作:

echo -n "Number : "
read num;

for i in $(seq 0 $num)
do
   if [ $(expr $i % 2) == 0 ]
   then
        echo $i
   fi
done

bash ex5.sh
Number : 12
0
2
4
6
8
10
12

1
投票
#!/bin/bash

read -p "Number: " num
awk '{for(i=0;i<=$1;i++) if(i%2 == 0) print i}'<<<$num

./printNumbers.sh
Number: 8
0
2
4
6
8

# to get a list use printf
awk '{for(i=0;i<=$1;i++) if(i%2 == 0) printf i","}'<<<$num | sed 's/,$//'

./printNumbers.sh
Number: 8
0,2,4,6,8

0
投票

` echo -n“号码:” 读取数字;

对于 $(seq 0 $num) 中的 i 做 如果 [ $((num%2)) -eq 0 ] 然后 回声$i 菲 完毕 `


0
投票
#!/usr/bin/env bash
read -p 'Number: ' num
seq 0 2 "$num"

0
投票

是<= not >=

#!/bin/bash

echo "Number :"
read num;

for (( i = 1; i <= $num; i++ ))
do
   if [ $(($i % 2)) -eq 0 ]
   then
        echo $i
   fi
done

0
投票

试试这个你会得到o/p

#!/bin/bash

对于 ((i = 1; i <= 100; i++)); do if (($i % 2 == 0)); then echo $i fi done

© www.soinside.com 2019 - 2024. All rights reserved.