zoukankan      html  css  js  c++  java
  • bash脚本编程学习笔记(二)

      1.脚本编程之函数

        函数是实现结构化编程重要的思想,主要目的是实现代码重用
        定义一个函数:
          function FUNCNAME
          {
          command //函数体
          }
     
          FUNCNAME(){ //函数名紧跟小括号不能加空格
        command
          }
     
          调用只需要使用函数名即可
          bash -x 脚本名 查看脚本执行的过程
        注意:函数的执行结果和函数的执行状态结果是不同的
          引用函数的执行结果:变量=`函数名`
          引用函数的状态结果:函数调用之后 echo $?
          脚本的执行状态结果取决于执行的最后一个命令
        自定义执行状态返回值 return #
      练习:接收参数的函数
        #!/bin/bash
        TWOSUM(){
          echo $[$1+$2]
        }
        SUM=`TWOSUM 5 6` //计算5和6的和
     
        #!/bin/bash
        TWOSUM(){
          echo $[$1+$2]
        }
        for I in {1..10};do
        let J=$[$I+1]
        echo "$I puls $J is `TWOSUM $I $J`"
        done //计算相邻整数的和
     
    练习:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:
    1.使用函数来实现一台主机的判定过程
    2.在主程序中来调用此函数判定指定范围内所有主机的在线情况。
    #!/bin/bash
    PING(){
    if ping -c 1 -W 1 $I &> /dev/null;done
    echo "$I is up"
    else
    echo "$I is down"
    fi
    done
    }
    for I in {200..254};do
    PING 192.168.0.$I
    done
     
    PING函数的另外的写法:
    PING(){
    if ping -c 1 -W 1 $I &> /dev/null;done
    return 0
    else
    return 1
    fi
    done
    }
    for I in {200..254};do
    PING 192.168.0.$I
    if [ $? -eq 0 ];then
    echo "192.168.0.$I is up"
    else
    echo "192.168.0.$I is down"
    fi
    done
     
    练习:写一个脚本,使用函数完成
    1.函数接受一个参数,参数为用户名;
    判断一个用户是否存在
    如果存在,返回此用户的shell和UID;并返回正常值状态
    如果不存在,就说此用户不存在,并返回错误状态值
    2.在主程序中调用此函数;
    扩展1:在主程序中,让用户自己输入用户名后,传递给函数来进行判定;
    扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名;但如果输入的是q或Q就退出
    #!/bin/bash
    Func()
    {
    if id $1 &>/dev/null;then
    echo "`grep ^$1 /etc/passwd|cut -d: -f3,7`"
    return 0
    else
    echo "$1 not exits"
    return 1
    fi
    done
    }
    read -p "please input another username" CHIOCE
    Func $CHIOCE
    until [ $CHIOCE == q -o $CHIOCE == Q ];do
    user $CHIOCE
    if [ $? -eq 0 ]
    read -p "please input another username" CHIOCE
    else
    read -p "no $username,please input another username" CHIOCE
    fi
    done
     
     
  • 相关阅读:
    asp.net
    Angualr ng-bind-html样式不加载解决办法
    angualr 单页面跳转(仿weui切换动画)
    很多人再找的6位框输入密码 类似于支付时候的输入密码框
    angual+mui 双栏上拉加载,微信里面禁用默认事件可用,可以防止浏览器回弹效果
    单页面跳转添加返回和跳转动画(仿app) 只对单页面和跳转有用,我用的是angualr,有不会的可以私信问我。
    文字前后对齐
    angual+ mui 导航切换实现上拉加载
    ajax监听上传进度
    Echais 点击legend
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/7007884.html
Copyright © 2011-2022 走看看