博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第12章代码《跟老男孩学习Linux运维:Shell编程实战》
阅读量:6294 次
发布时间:2019-06-22

本文共 3446 字,大约阅读时间需要 11 分钟。

本书历史上已出版最实战的Shell高级编程实战书籍,没有之一,和市面书籍不同,本书是作者经过18年的运维工作及教学工作后,创新类企业级实战书籍,适合所有学习及从事Linux相关工作的读者。

《跟老男孩学习Linux运维:Shell高级编程实战》第8章,本书预计于12月底出版,本章的部分代码如下:

有关代码的思路分析和详细注释,请支持作者购买正版书籍获得。

[root@oldboy C12]# for n in `ls *.sh`;do echo;echo;echo "[root@oldboy C12]# cat $n";cat $n;done[root@oldboy C12]# cat 12_1_1.sh#!/bin/bash                                                                                    #Author:oldboy training#Blog:http://oldboy.blog.51cto.com#Time:2016-09-21 23:16:11#Name:12_1_1.sh#Version:V1.0#Description:test{break|continue|exit|return}script.if [ $# -ne 1 ];then  echo $"usage:$0 {break|continue|exit|return}"  exit 1fitest(){for((i=0; i<=5; i++))do  if [ $i -eq 3 ] ;then      $*;  fi  echo $idoneecho "I am in func."}test $*func_ret=$?if [ `echo $*|grep return|wc -l` -eq 1 ] then  echo "return's exit status:$func_ret" fiecho "ok"[root@oldboy C12]# cat 12_2_1.sh#!/bin/bash                                                                                            #Author:oldboy training#Blog:http://oldboy.blog.51cto.com#Time:2016-09-22 00:11:22#Name:12_2_1.sh#Version:V1.0#Description:config ip script.[ -f /etc/init.d/functions ] && . /etc/init.d/functionsRETVAL=0add(){for ip in {1..16}do  if [ $ip -eq 10 ]   then     continue  fi  ip addr add 10.0.2.$ip/24 dev eth0 label eth0:$ip &>/dev/null  RETVAL=$?  if [ $RETVAL -eq 0 ]  then      action "add $ip" /bin/true  else       action "add $ip" /bin/false  fidonereturn $RETVAL}del(){for ip in {16..1}do  if [ $ip -eq 10 ]  then     continue  fi  #ip addr del 10.0.2.$ip/24 dev eth0 &>/dev/null  ifconfig eth0:$ip down &>/dev/null  RETVAL=$?  if [ $RETVAL -eq 0 ]  then      action "del $ip" /bin/true  else      action "del $ip" /bin/false  fidone}case "$1" in start)    add    RETVAL=$?    ;; stop)    del    RETVAL=$?    ;; restart)    del    sleep 2    add    RETVAL=$?    ;;    *)     printf "USAGE:$0 {start|stop|restart}\n"esacexit $RETVAL[root@oldboy C12]# cat 12_2_2.sh#!/bin/bash                                                                                            #Author:oldboy training#Blog:http://oldboy.blog.51cto.com#Time:2016-09-22 00:36:18#Name:12_2_2.sh#Version:V1.0#Description:config ip new script.[ -f /etc/init.d/functions ] && . /etc/init.d/functionsRETVAL=0op(){if [ "$1" == "del"  ] then    list=`echo {16..1}`else    list=`echo {1..16}`fifor ip in $listdo  if [ $ip -eq 10 ]   then     continue  fi  ip addr $1 10.0.2.$ip/24 dev eth0 label eth0:$ip &>/dev/null  RETVAL=$?  if [ $RETVAL -eq 0 ]  then      action "$1 $ip" /bin/true  else       action "$1 $ip" /bin/false  fidonereturn $RETVAL}case "$1" in start)    op add    RETVAL=$?    ;; stop)    op del    RETVAL=$?    ;; restart)    op del    sleep 2    op add    RETVAL=$?    ;;    *)     printf "USAGE:$0 {start|stop|restart}\n"esacexit $RETVAL[root@oldboy C12]# cat 12_3_1.sh#!/bin/bashsum=0exec <$1while read linedo  size=`echo $line|awk '{print $10}'`  expr $size + 1 &>/dev/null  if [ $? -ne 0 ];then   continue  fi  ((sum=sum+$size))doneecho "${1}:total:${sum}bytes =`echo $((${sum}/1024))`KB"[root@oldboy C12]# cat 12_4_1.sh#!/bin/bashfor n in {0..32767}do   echo "`echo $n|md5sum` $n" >>/tmp/zhiwen.logdone[root@oldboy C12]# cat 12_4_2.sh#!/bin/bash#for n in {0..32767}#do  # echo "`echo $n|md5sum` $n" >>/tmp/zhiwen.log#donemd5char="4fe8bf20ed"while read linedo    if [ `echo $line|grep "$md5char"|wc -l` -eq 1 ]     then           echo $line           break    fidone 

转载地址:http://oypta.baihongyu.com/

你可能感兴趣的文章
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>
聊聊elasticsearch的RoutingService
查看>>
让人抓头的Java并发(一) 轻松认识多线程
查看>>
从源码剖析useState的执行过程
查看>>
地包天如何矫正?
查看>>
中间件
查看>>