函数
☆什么是函数?
shell中允许将一组命令集合或者语句形成一段可用代码,这些代码块称为shell函数;
再给这个代码块起个名称为函数名,输入函数名可以调用该段代码的功能。
1 函数的定义
第一种方式:
函数名()
{
函数体(一堆命令的集合,来实现某个功能)
}
第二种方式:
function 函数名()
{
函数体(一堆命令的集合,来实现某个功能)
}
举个例子说:
function_name() {
command
command
}
或者
function function_name() {
command
command
}
2 函数的调用
//使用shell脚本写一个函数
[root@MissHou ~]# cat function.sh
#!/bin/bash
hello(){
echo "hello world!"
}
2.1 在当前命令行调用
在控制台输入
# source function.sh //让系统读取(刷新)脚本中的函数,后续只在当前终端可用
# hello //调用脚本中的函数
2.2 在脚本中调用
#!/bin/bash
hello(){
echo "hello world!"
}
hello //调用函数
2.3 定义到用户的环境变量中
编辑配置文件,一般不会用到
/etc/profile #所有用户的环境变量
/etc/bashrc #所有bash shell用户的全局变量
~/.bash_profile #当前用户的环境变量
~/.bashrc #当前用户的bash
3 应用
案例:写一个脚本让用户输入基本信息(姓名,性别,年龄),如不输入一直提示输入,最后根据用户的信息输出相对应的内容
#!/bin/bash
##该函数实现用户如果不输入内容则一直循环直到用户输入为止,并且将用户输入的内容打印出来
input_fun()
{
input_var=""
output_var=$1
while [ -z $input_var ]
do
read -p "$output_var" input_var
done
echo $input_var
}
##调用函数并且获取用户的姓名、性别、年龄分别赋值给name、sex、age变量
name=$(input_fun 请输入你的姓名:)
sex=$(input_fun 请输入你的性别:)
age=$(input_fun 请输入你的年龄:)
##根据用户输入的性别进行匹配判断
case $sex in
man)
if [ $age -gt 18 -a $age -le 35 ];then
echo "中年大叔你油腻了吗?加油"
elif [ $age -gt 35 ];then
echo "保温杯里泡枸杞"
else
echo "年轻有为。。。"
fi
;;
woman)
echo "你好啊,女士,哈哈"
;;
*)
echo "嗯?是蓝星的吗?"
;;
esac