Shell函数
目标
1. 掌握shell函数定义及使用方法
1. 函数
说明:完成指定独立功能的代码段进行封装,需要调用才能被执行
1.1 shell函数常用方式
1. 简单函数(无参)
2. 带参函数(调用函数时带参数)
3. 带参函数(执行脚本时调用参数)
简单函数
说明:自定义函数,调用函数名
格式
定义函数:
函数名(){
语句
...
}
调用函数:
函数名
案例1
需求:定义fun01函数,打印 this is a funcation
案例1 步骤分析
1. 创建脚本
2. 声明编译器
3. 定义函数 --> fun01(){}
4. 调用函数名 fun01
5. 执行脚本
带参函数(调用函数时带参数)
说明:调用函数名时带参数
格式
定义函数:
函数名(){
语句$n
...
}
调用函数:
函数名 参数
案例2
需求:定义fun01函数,调用的时候传递参数 zhangsan,打印:nihao zhangsan
案例2 步骤分析
1. 创建脚本
2. 声明编译器
3. 定义函数 --> fun01(){..$n}
4. 调用函数 fun01 zhangsan
5. 执行脚本
带参函数(执行脚本时调用参数)
说明:执行脚本时附带参数
格式
定义函数:
函数名(){
语句$n
...
}
调用函数:
函数名 $n
案例3
需求:定义fun01函数,执行脚本时传递参数 lisi,打印:nihao lisi
案例3 步骤分析
1. 创建脚本
2. 声明编译器
3. 定义函数 --> fun01(){..$n}
4. 调用函数 fun01 $n
5. 执行脚本 bash /root/fun01.sh lisi
案例1-3 代码示例:
fun01.sh
#!/bin/bash
# 定义函数名
fun01(){
echo "this is a funcation"
}
# 调用函数
fun01
fun02.sh
#!/bin/bash
# 定义函数名
fun01(){
echo "ni hao $1"
}
# 调用函数
fun01 zhangsan
fun03.sh
#!/bin/bash
# 定义函数名
fun01(){
echo "ni hao $1"
}
# 调用函数
fun01 $1
# 执行脚本调用
root@lgy-virtual-machine:~# bash /root/fun03.sh lisi
练习1
使用函数实现,输入任意两个数,打印求和结果
练习1 代码示例
#!/bin/bash
read -p "请输入第一个数:" num1
read -p "请输入第二个数:" num2
# 调用函数
sum "${num1}" "${num2}"
# 声明函数
sum(){
num=$((num1+num2))
echo "$num"
}
练习2
说明:使用函数;提示输入一个目录,在此目录中进行提示要创建的文件名;如果该目录不存在,提示目录不存在;
如果输入的文件已存在,提示该文件已存在,否则创建该文件;
练习2 代码示例
#!/bin/bash
# 提示用户输入目录
read -p "请输入目录:" dirname
# 判断目录是否存在
if [ -d "$dirname" ]
then
# 调用创建文件函数
createfile $dirname
else
echo "该目录不存在!"
fi
createfile(){
# 进入目录
cd $1
# 提示输入文件名称
read -p "请输入文件名称:" filename
if [ -e "$filename" ]
then
echo "$filename 该文件已存在!"
# 回到脚本目录
cd "/data/data01"
else
echo "该文件不存在"
echo "正在创建$1/$filename文件..."
touch "$1/${filename}"
echo "文件创建成功!$1/$filename"
# 回到脚本目录
cd "/data/data01"
fi
}
函数 总结
1. 函数格式
2. 函数调用
3. 函数带参调用