2014-01-26 15 views
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 
+4

你的邏輯是都好,你只要使用了錯誤的變量。 '$ i'是你的操作數,而不是'$ n'。只要改成'm = \'expr $ i%5 \'' –

+0

@MichaelBerkowski thx! –

回答

1

n是始終保持在20所以 「M =`EXPR $ N%5」 將始終爲0

相關問題