Shell脚本里面也可以定义函数,我们这就来学习下函数
1. 注释
在这之前,我们先看下怎样在Shell脚本中添加注释
好吧,貌似只有一种办法,就是 #
加了#的行会被忽略
#!/bin/bash
#####hello
#我是注释
#
##
###
#
echo "哎,当行注释"
######
这里只有单行注释
2. 函数的定义和调用
语法规则:
我们使用 function 来定义一个函数,需要用括号括起来
示例:
function show_menu {
echo ""
echo "1.显示所有联系人"
echo "2.退出"
echo ""
echo "请选择:"
}
调用的话,直接使用函数名进行调用
示例:
#!/bin/bash
#function demo
#显示菜单
function show_menu {
echo ""
echo "1.显示所有联系人"
echo "2.退出"
echo ""
echo "请选择:"
}
#循环标识,为1时进行循环
let flag=1
while [ ${flag} == 1 ]
do
#显示菜单信息
show_menu
#读取输入
read rs
case ${rs} in
1)
echo "暂无联系人。"
;;
2)
echo "Bye."
let flag=0
;;
*)
echo "请选择1或者2"
;;
esac
done
这里,我们显示个界面,根据用户输入进行判断
3. 函数的参数
这里的函数同样可以传递参数的
我们可以使用 ${1},${2}..来使用
示例:
#!/bin/bash
function logon {
if [ ${1} == "lufei" ] && [ ${2} == "haha" ]
then
echo "登录成功!"
else
echo "登录失败!"
fi
}
let flag=1
while [ ${flag} -eq 1 ]
do
echo "请输入用户名:"
read u_name
echo "请输入密码:"
read u_password
logon ${u_name} ${u_password}
done
这里是一个简单的登录验证示例,我们将获取的用户名和密码传递给函数logon去验证
4. 参数个数验证
在这里调用函数的时候很可能参数不够,导致程序出错;我们可以使用$#来获取参数的个数进行判断
#!/bin/bash
function logon {
#判断参数个数,2个参数就进行信息验证
if [ $# -eq 2 ]
then
if [ ${1} == "lufei" ] && [ ${2} == "haha" ]
then
echo "登录成功!"
else
echo "登录失败!"
fi
else
#提示错误信息
echo "参数个数不符"
fi
}
let flag=1
while [ ${flag} -eq 1 ]
do
echo "请输入用户名:"
read u_name
echo "请输入密码:"
read u_password
#调用时,只传了一个参数
logon ${u_name}
done
这个程序,暂时还不能退出,可以使用CTRL+C强制退出
5. 函数返回值
这里的函数,同样也可以有返回值的,return,但是这里的话,返回值必须是0~256之间的一个整数
#!/bin/bash
function test_return {
echo "please input a number:"
read num
return ${num}
}
test_return
echo "haha,you input: $?"