2010-11-12 43 views
0
num=0.5 

avg=`seq 0.47 0.01 0.79` 

case $num in 
"$avg") 
echo "ok" 
;; 
1) 
echo "no" 
;; 
esac 

我試圖做到這一點,如果你明白。 所以,即時通訊給它一個數字,並且如果數字匹配序列就沒關係。 但這不起作用。有沒有另一種方法來做到這一點?Bash案例序號

+0

請注意'0.5'永遠不會匹配來自'seq 0.47 0.01 0.79'的輸出,但'0.50'將會。 – 2010-11-13 00:18:26

回答

1
 
num=0.5 
result="not ok" 
for vers in $(seq 0.47 0.01 0.79) 
do 
    if [ "$vers" = "$num" ] ; then 
     result=ok 
     break  # thanks @GreenMatt 
    fi 
done 
echo $result 
+0

使用break命令退出循環。 – GreenMatt 2010-11-12 22:20:38

+0

規則:你測試了嗎?我只是剪下並粘貼了代碼,然後「不好」。 – camh 2010-11-13 00:26:02

+0

是的。輸入'0.5'應該會給你「不好」。輸入「0.50」將是「OK」。 – mob 2010-11-13 21:47:25