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: $?"
(责任编辑:IT) |