shell版本比较

写脚本时经常需要检查一些依赖,经常需要比较版本,在网上找到一个比较好用的方法,废话不多说,直接上脚本

#!/bin/bash

v1="1.0.1"
v2="1.1.1"

# 大于
function version_gt() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" != "$1"; }
# 小于等于
function version_le() { test "$(echo "$@" | tr " " "\n" | sort -V | head -n 1)" == "$1"; }
# 小于
function version_lt() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" != "$1"; }
# 大于等于
function version_ge() { test "$(echo "$@" | tr " " "\n" | sort -rV | head -n 1)" == "$1"; }

if version_gt $VERSION $VERSION2; then
   echo "$v2 > $v1"
fi