Shell编程基础-function: 功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell编程基础-function: 功能相关的知识,希望对你有一定的参考价值。

脚本编程之函数:
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




























































































以上是关于Shell编程基础-function: 功能的主要内容,如果未能解决你的问题,请参考以下文章

shell编程基础

shell编程基础

shell中的函数

Shell编程-基础

shell编程基础

shell编程基础语法