Jason的菜地
谁言书生无用,笔下自有乾坤

今天写了一个shell函数来查编译环境的python版本,感觉还是学到了不少新东西,简单记录一下,能写出一点东西满足自己的需求也是一件开心的事情。

1. awk果然强大,本来也没有用过,上网了解了一些基本用法,解决了我的需求

2. SHELL里比较浮点数的大小确实很麻烦,还好这次小数点后只有两位

#!/bin/sh  
checkPython()
{
    #推荐版本V3.8.0
    V1=3
    V2=8
    V3=0

    echo need python version is : $V1.$V2.$V3
    
    #获取本机python版本号。如果是python2的环境这里2>&1是必须的,因为python2的-V参数命令是标准错误输出的,需要转换。python3就不是了。
    U_V1=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $1}'`
    U_V2=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $2}'`
    U_V3=`python -V 2>&1|awk '{print $2}'|awk -F '.' '{print $3}'`
    
    echo your python version is : $U_V1.$U_V2.$U_V3
    
    if [ $U_V1 -lt $V1 ];then
        echo 'Your python version is not OK!(1)'
        return 1
    elif [ $U_V1 -eq $V1 ];then     
        if [ $U_V2 -lt $V2 ];then 
            echo 'Your python version is not OK!(2)'
            return 2
        elif [ $U_V2 -eq $V2 ];then
            if [ $U_V3 -lt $V3 ];then 
                echo 'Your python version is not OK!(3)'
                return 3
            fi
        fi    
    fi

    echo Your python version is OK!
    return 0
}

checkPython
recode=$?
if [ $recode -eq 0 ];then
  echo "checkPython OK."
else
  echo "checkPython failed. recode="  $recode
fi

  

 执行结果如下

./1.sh 
need python version is : 3.8.0
your python version is : 3.9.6
Your python version is OK!
checkPython OK.

 

  

posted on 2013-07-18 23:10  贾森  阅读(6969)  评论(0编辑  收藏  举报