脚本多了就会发现,有的时候很多东西在很多脚本中都会要用到,这儿整理出其中几个,与大家分享。这中间有很多设计正则表达式,正则是好好东西,用途很广,推荐大家好好学学。即使最初看不懂也不要放弃,多写,写多了自然能很快反应需要什么样的正则来匹配什么样的字符串。

检查当前执行脚本的用户是不是root用户,两种方法,如下:

#1 这个比较麻烦一点
id | grep "uid=0(" >/dev/null
if [ $? != "0" ]; then
    uname -a | grep -i CYGWIN >/dev/null
    if [ $? != "0" ]; then
        echo "ERROR: The Webmin install script must be run as root"
        echo ""
        exit 1
    fi
fi
#2 相对简单快捷一些
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to run this script"
    exit 1
fi

获取系统的所有IP,不包含127.0.0.1,有三种办法

#1 要留意grep中的内容,不同系统要分别设置
ifconfig | grep "venet0:0" --after-context=1 | sed -n 's/..*addr:\(..*\) P-t-P..*/\1/p' | sed '/127.0.0.1/d'
#2 要留意addr后面的字符,有些是Bcast,不同系统要分别设置
ifconfig | sed -n 's/..*addr:\(..*\) P-t-P..*/\1/p' | sed '/127.0.0.1/d'
#3 基本不需要针对不同系统进行设置能够获取全部正确有用的IP
ifconfig | sed '/Link/d' | sed '/127.0.0.1/d' | grep addr | awk '{print $2}' | sed 's/addr://g' | sed '/^$/d'

在多网卡的机子上如果只需要获取一个,用下面的两个句子,第一个用于获取所有IP地址,第二个进行删选

IP=`ifconfig | sed '/Link/d' | sed '/127.0.0.1/d' | grep addr | awk '{print $2}' | sed 's/addr://g' | sed '/^$/d'`
echo $IP | sed 's/ .*//'

获取发行版信息,不是uname得到的那种结果,是确切的那个发行版,如下

cat /etc/issue | head -n 1 | awk '{print $1}'

更多有用知识会在后续的日志中向各位呈现!