1
我正在使用%來確定數字可以被5整除。但它總是返回'0',表明所有數據均可被5整除。爲什麼在Linux shell腳本中這種使用%不起作用?
我在做什麼錯?
#!/bin/sh
n=20
i=1
# loop while i <= n
while [ $i -lt $n ] || [ $i -eq $n ]
do
# find the numbers that are evenly divisible by '5'
m=`expr $n % 5`
if [ $m -eq 0 ]; then
echo $i" is evenly divisible by 5"
fi
# do i = i + 1
i=`expr $i + 1`
done
我的輸出是這樣的:
1 is evenly divisible by 5
2 is evenly divisible by 5
3 is evenly divisible by 5
4 is evenly divisible by 5
5 is evenly divisible by 5
6 is evenly divisible by 5
7 is evenly divisible by 5
8 is evenly divisible by 5
9 is evenly divisible by 5
10 is evenly divisible by 5
11 is evenly divisible by 5
12 is evenly divisible by 5
13 is evenly divisible by 5
14 is evenly divisible by 5
15 is evenly divisible by 5
16 is evenly divisible by 5
17 is evenly divisible by 5
18 is evenly divisible by 5
19 is evenly divisible by 5
20 is evenly divisible by 5
你的邏輯是都好,你只要使用了錯誤的變量。 '$ i'是你的操作數,而不是'$ n'。只要改成'm = \'expr $ i%5 \'' –
@MichaelBerkowski thx! –