• 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
     
     
  • 相关阅读:
    Mysql(二)
    Mysql(一)
    JS图表插件(柱形图、饼状图、折线图)
    如何让Table中的第一列和第二列的值相乘然后赋值给第三列
    js生成验证码并验证
    IIS配置默认文档
    DropDownList如何添加一个空白的选项
    GridView如何合并同类项
    .NET后台如何获取前台HMTL控件的值
    Json数据报错
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/7007884.html
Copyright © 2020-2023  润新知