暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【学习】Shell编程基础(函数)

唤我三郎便可 2021-08-20
599

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. 函数带参调用



  • 自己搜集总结


文章转载自唤我三郎便可,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论