005#驗證整數輸入

驗證整數輸入,注意整數包含正負整數。

 1 #!/usr/bin/env bash
 2 
 3 validint(){
 4   number=$1
 5   min=$2
 6   max=$3
 7 
 8   # 空值檢測
 9   if [ -z $number ]; then
10     echo "You didn't input anything." >&2
11     return 1
12   fi
13 
14   # 負數符號檢測
15   if [ "${number%${number#?}}" = "-" ]; then
16     num="${number#?}"
17   else
18     num="${number}"
19   fi
20   
21   # 檢查除負數符號後的數字是否是整數
22   nodigits=$(echo $num | sed 's/[[:digit:]]//g')
23   if [ ! -z "$nodigits" ]; then
24     echo "Invalid number format. Only digits, no commas, spaces, etc." >&2
25     return 1
26   fi
27 
28   # 判斷輸入值是否小於指定最小值
29   if [ ! -z $min ]; then
30     if [ $number -lt $min  ]; then
31       echo "You value is too small. the smallest value is $min" >&2
32       return 1
33     fi
34   fi
35 
36   # 判斷輸入值是否大於指定最大值
37   if [ ! -z $max ]; then
38     if [ $number -gt $max ]; then
39       echo "You value is too big. the largest value is $max" >&2
40       return 1
41     fi
42   fi
43 
44   return 0
45 }
46 
47 # 驗證輸入
48 if validint $1 $2 $3; then
49   echo "Input is valid integer within your constraints."
50 fi
View Code

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章