You need to join this project to post message / question. See Help for details.

Bash Compare Two Verions

 1 # Purpose:  Compare two version string in x.y.z format
 2 # Author:   Anh K. Huynh
 3 # License:  Public domain
 4 __version_compare_v1_le_v2() {
 5   local _ver1="$1" 
 6   local _ver2="$2" 
 7   local _n1="$(echo $_ver1 | sed -e 's/[^.]//g' | wc -m)" 
 8   local _n2="$(echo $_ver2 | sed -e 's/[^.]//g' | wc -m)" 
 9   if [ ! $_n1 = $_n2 ]; then
10     echo >&2 ":: ($FUNCNAME) cannot compare two different formats: $_ver1 vs. $_ver2" 
11     return 2
12   fi
13   local _i=1
14   local _f1
15   local _f2
16   local _lessthan=0
17   while [ $_i -le $_n1 ]; do
18     _f1="$(echo $_ver1 | cut -d. -f$_i)" 
19     _f2="$(echo $_ver2 | cut -d. -f$_i)" 
20     if [ $_f1 -lt $_f2 ]; then
21       break
22     elif [ $_f1 -gt $_f2 ]; then
23       _lessthan=1
24       break
25     fi
26     _i="$(expr $_i + 1)" 
27   done
28   return $_lessthan
29 }

Also available in: HTML TXT