Shell函数

 

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. 函数带参调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值