zoukankan      html  css  js  c++  java
  • shell函数

    脚本编程之函数:

    function: 功能

    结构化编程,不能独立运行,需要调用时执行,可以被多次调用

    定义一个函数:
    function FUNCNAME {
      command
    }

    FUNCNAME() {
      command
    }


    自定义执行状态返回值:
    return #
    0-255

    接受参数的函数:
    ./a.sh m n
    $1: m
    $2: n


    TWOINT 5 6
    $1: 5
    $2: 6

    练习:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:
    1、使用函数来实现一台主机的判定过程;
    2、在主程序中来调用此函数判定指定范围内的所有主机的在线情况。

    #!/bin/bash
    #
    PING() {
      for I in {200..254};do
        if ping -c 1 -W 1 192.168.0.$I &> /dev/null; then
          echo "192.168.0.$I is up."
        else
          echo "192.168.0.$I is down."
        fi
      done
    }

    PING




    #!/bin/bash
    #
    PING() {
        if ping -c 1 -W 1 $1 &> /dev/null; then
          echo "$1 is up."
        else
          echo "$1 is down."
        fi
    }

    for I in {200..254}; do
      PING 192.168.0.$I
    done


    #!/bin/bash
    #
    PING() {
        if ping -c 1 -W 1 $1 &> /dev/null; then
          return 0
        else
          return 1
        fi
    }

    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
    #
    user () {
    if id $1 &> /dev/null ;then
    echo "`grep ^$1  /etc/passwd | cut -d: -f3,7`"
       return 0
    else
       echo "no $1"
        return 1
    fi
    }
    read -p "please input username:" username
    until [ $username == q -o $username == Q ]; do
        user $username
        if [ $? == 0 ];then
            read -p "please input again:" username
        else
            read -p "no $username,please input again:" username
        fi
    done

  • 相关阅读:
    字典的两种访问方式
    python列表
    字符串基础操作
    C#解leetcode 11. Container With Most Water
    c# hasvalue属性
    C#解leetcode 238. Product of Array Except Self
    win7/win8 64位系统注册TeeChart8.ocx 控件---以及dllregisterserver调用失败问题解决办法
    C#解leetcode 219. Contains Duplicate II
    转载:C# HashSet 用法
    C#解leetcode:119. Pascal's Triangle II
  • 原文地址:https://www.cnblogs.com/jjzd/p/5812626.html
Copyright © 2011-2022 走看看