码迷,mamicode.com
首页 > 其他好文 > 详细

函数function~

时间:2016-06-21 08:05:18      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:函数

函数:功能,function

代码重用:

:so

定义一个函数的方法有2

第一种:

function FUNCNAME{

   command

}

第二种:

FUNCNAME () {

command

}

写一个脚本“输入d显示硬盘使用信息,输入m显示内存使用信息,输入s显示swap使用信息,输入q则退出”

 

#!/bin/bash

#

cat << EOF

d|D) show diskusages

m|M) show memoryusages

s|S) show swapusages

q|Q) quit

EOF

read -p "Yourchoice:" CHOICE

until [ $CHOICE ==‘q‘ -o $CHOICE == ‘Q‘ ];do

case $CHOICE in

d|D)

df -lh

;;

m|M)

free -m |grep"^Mem"

;;

s|S)

free -m |grep"^swap"

;;

*)

cat << EOF

d|D) show diskusages

m|M) show memoryusages

s|S) show swapusages

q|Q) quit

EOF

read -p "Yourchoice:" CHOICE

;;

esac

cat << EOF

d|D) show diskusages

m|M) show memoryusages

s|S) show swapusages

q|Q) quit

EOF

read -p "Yourchoice:" CHOICE

done

cat做成函数,后调用

#!/bin/bash

#

ABC ()  {

cat << EOF

d|D) show diskusages

m|M) show memoryusages

s|S) show swapusages

q|Q) quit

EOF

}

ABC

read -p "Yourchoice:" CHOICE

until [ $CHOICE ==‘q‘ -o $CHOICE == ‘Q‘ ];do

case $CHOICE in

d|D)

df -lh

;;

m|M)

free -m |grep"^Mem"

;;

s|S)

free -m |grep"^swap"

;;

*)

ABC

read -p "Yourchoice:" CHOICE

;;

esac

ABC

read -p "Yourchoice:" CHOICE

done

return # 定义执行状态返回值,函数不执行return后的语句。

#0-255

如果用户调用函数如果用户admin存在则返回1,如果用户不存在则创建用户,并设置密码,返回值0

如果返回0 则显示用户添加成功,如果返回1则显示用户已存在

#!/bin/bash

#

function  ABC {

USERNAME=‘admin‘

if  ! id -u $USERNAME &>/dev/null;then

 useradd $USERNAME

 echo "$USERNAME" |passwd --stdin&> /dev/null

 return 0

else

 return 1

fi

}

ABC

if [ $? -eq 0];then

 echo "add user finished"

else

 echo "user exist"

fi

接受参数的函数:

FUNCTION  a   b

$1 : a

$2 : b

110任意2个相邻整数相加

#!/bin/bash

#

function QWE {

echo $[$1+$2]

}

 

for I in {1..10};do

  let J=$I+1

echo "$I pluse$J is `QWE $I $J`"

done

修改上面的脚本,让脚本可以连续创建10个用户

#!/bin/bash

#

function  ABC {

USERNAME=$1

if  ! id -u $USERNAME &>/dev/null;then

 useradd $USERNAME

 echo "$USERNAME" |passwd --stdin&> /dev/null

 return 0

else

  return 1

fi

}

for I in {1..10};do

ABC user$I

if [ $? -eq 0];then

 echo "add user finished"

else

 echo "user exist"

fi

done

练习:写一个脚本,判定192.168.0.200-192.168.0.254之间的主机哪些在线。要求:

  1. 1.        使用函数来实现一台主机的判定过程:

  2. 2.        在主程序中来调用此函数判定指定范围内的所有主机的在线情况。

#!/bin/bash

#

function PING {

if ping -c 1 -w 1  192.168.0.$I &> /dev/null;then

 return 0

else

 return 1

fi

}

for I in {200..254}; do

PING $I

if [ $? -eq 0 ];then

echo "192.168.0.$I is up"

else

echo "192.168.0.$I is down"

fi

done

写一个脚本:使用函数完成

1 .   函数能够接受一个参数,参数为用户名:

判断一个用户是否存在

如果存在,就返回此用户的shellUID并返回正常状态值

如果不存在,就说此用户不存在;并返回错误状态值;

 

      2.在程序中调用函数:

扩展1:在主主程序中,让用户自己输入用户名,传递给函数来进行判断;

扩展2:在主程序中,输入用户名判断后不退出脚本,而是提示用户继续输入下一个用户名:如果用户输入的用户不存在,请用户从新输入;但如果用户输入的是q或者Q就退出;

 

#!/bin/bash

#

 

function IDUSER {

if id -u $1&>/dev/null ;then

 

 echo " $1 shell is :`cat /etc/passwd|grep "^$1\b" |awk -F : ‘{print $7}‘`"

 echo " $1 UID is: `id -u $1`"

 return 0

else

 echo "user not exist."

 return 1

fi

}

read -p"username:" USERNAME

until [ $? == ‘q‘-o $? == ‘Q‘ ] ; do

IDUSER $USERNAME

if [ $? -eq 0];then

read -p"pleasw input again:" USERNAME

else

read -p "no$USERNAME,please input again::" USERNAME

fi

done

     

      


本文出自 “linux运维” 博客,谢绝转载!

函数function~

标签:函数

原文地址:http://coolcl.blog.51cto.com/4514424/1791196

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!