分享一些有用的Shell脚本片段
写脚本多了就会发现,有的时候很多东西在很多脚本中都会要用到,这儿整理出其中几个,与大家分享。这中间有很多设计正则表达式,正则是好好东西,用途很广,推荐大家好好学学。即使最初看不懂也不要放弃,多写,写多了自然能很快反应需要什么样的正则来匹配什么样的字符串。
检查当前执行脚本的用户是不是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}'
更多有用知识会在后续的日志中向各位呈现!
上一篇: 分享一个Linux上清除黑链的脚本下一篇: Crontab与shell不得不说的故事