当前位置: > shell编程 >

Shell脚本入门(十) - 函数

时间:2014-10-25 14:52来源:linux.it.net.cn 作者:it

Shell脚本里面也可以定义函数,我们这就来学习下函数

1. 注释

在这之前,我们先看下怎样在Shell脚本中添加注释

好吧,貌似只有一种办法,就是 #

加了#的行会被忽略

 

  1. #!/bin/bash  
  2. #####hello  
  3. #我是注释  
  4. #  
  5. ##  
  6. ###  
  7. #  
  8. echo "哎,当行注释"  
  9. ######  

这里只有单行注释

2. 函数的定义和调用

语法规则:

我们使用 function 来定义一个函数,需要用括号括起来

示例:

 

 
  1. function show_menu {  
  2.     echo ""  
  3.     echo "1.显示所有联系人"  
  4.     echo "2.退出"  
  5.     echo ""  
  6.     echo "请选择:"  
  7. }  

调用的话,直接使用函数名进行调用

 

示例:

 

  1. #!/bin/bash  
  2.   
  3. #function demo  
  4. #显示菜单  
  5. function show_menu {  
  6.     echo ""  
  7.     echo "1.显示所有联系人"  
  8.     echo "2.退出"  
  9.     echo ""  
  10.     echo "请选择:"  
  11. }  
  12.   
  13. #循环标识,为1时进行循环  
  14. let flag=1  
  15. while [ ${flag} == 1 ]  
  16. do  
  17.     #显示菜单信息  
  18.     show_menu  
  19.       
  20.     #读取输入  
  21.     read rs  
  22.     case ${rs} in  
  23.         1)  
  24.             echo "暂无联系人。"  
  25.             ;;  
  26.         2)  
  27.             echo "Bye."  
  28.             let flag=0  
  29.             ;;  
  30.         *)  
  31.             echo "请选择1或者2"  
  32.             ;;  
  33.     esac  
  34. done  

这里,我们显示个界面,根据用户输入进行判断

 

3. 函数的参数

这里的函数同样可以传递参数的

我们可以使用 ${1},${2}..来使用

示例:

 

  1. #!/bin/bash  
  2.   
  3. function logon {  
  4.         if [ ${1} == "lufei" ] && [ ${2} == "haha" ]  
  5.         then  
  6.                 echo "登录成功!"  
  7.         else  
  8.                 echo "登录失败!"  
  9.         fi  
  10. }  
  11.   
  12. let flag=1  
  13. while [ ${flag} -eq 1 ]  
  14. do  
  15.         echo "请输入用户名:"  
  16.         read u_name  
  17.   
  18.         echo "请输入密码:"  
  19.         read u_password  
  20.   
  21.         logon ${u_name} ${u_password}  
  22. done  

这里是一个简单的登录验证示例,我们将获取的用户名和密码传递给函数logon去验证

 

4. 参数个数验证

在这里调用函数的时候很可能参数不够,导致程序出错;我们可以使用$#来获取参数的个数进行判断

 

  1. #!/bin/bash  
  2.   
  3. function logon {  
  4.     #判断参数个数,2个参数就进行信息验证  
  5.     if [ $# -eq  2 ]  
  6.     then  
  7.   
  8.         if [ ${1} == "lufei" ] && [ ${2} == "haha" ]  
  9.         then  
  10.             echo "登录成功!"  
  11.         else  
  12.             echo "登录失败!"  
  13.         fi  
  14.     else  
  15.         #提示错误信息  
  16.         echo "参数个数不符"  
  17.     fi  
  18. }  
  19.   
  20. let flag=1  
  21. while [ ${flag} -eq 1 ]  
  22. do  
  23.     echo "请输入用户名:"  
  24.     read u_name  
  25.   
  26.     echo "请输入密码:"  
  27.     read u_password  
  28.       
  29.     #调用时,只传了一个参数  
  30.     logon ${u_name}  
  31. done  

这个程序,暂时还不能退出,可以使用CTRL+C强制退出

 

 

5. 函数返回值

这里的函数,同样也可以有返回值的,return,但是这里的话,返回值必须是0~256之间的一个整数

 

  1. #!/bin/bash  
  2.   
  3. function test_return {  
  4.         echo "please input a number:"  
  5.         read  num  
  6.   
  7.         return ${num}  
  8. }  
  9.   
  10. test_return  
  11. echo "haha,you input: $?"  

(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容