我正在尝试编写一个 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
非常感谢
这样可以让你的代码正常工作:
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
#!/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
` echo -n“号码:” 读取数字;
对于 $(seq 0 $num) 中的 i 做 如果 [ $((num%2)) -eq 0 ] 然后 回声$i 菲 完毕 `
#!/usr/bin/env bash
read -p 'Number: ' num
seq 0 2 "$num"
是<= not >=
#!/bin/bash
echo "Number :"
read num;
for (( i = 1; i <= $num; i++ ))
do
if [ $(($i % 2)) -eq 0 ]
then
echo $i
fi
done
试试这个你会得到o/p
#!/bin/bash
对于 ((i = 1; i <= 100; i++)); do if (($i % 2 == 0)); then echo $i fi done