linux Shell 命令行-07-func 函数

拓展阅读

linux Shell 命令行-00-intro 入门介绍

linux Shell 命令行-02-var 变量

linux Shell 命令行-03-array 数组

linux Shell 命令行-04-operator 操作符

linux Shell 命令行-05-test 验证是否符合条件

linux Shell 命令行-06-flow control 流程控制

linux Shell 命令行-07-func 函数

linux Shell 命令行-08-file include 文件包含

linux Shell 命令行-09-redirect 重定向

函数

ini 复制代码
[ function ] 函数名 [()]

{

    动作;

    [返回值;]

}

示例

sh 复制代码
#!/bin/sh

# 函数演示

firstFunc() {
    echo "这是我的第一个 Shell 函数。"
}

echo "函数开始"
firstFunc
echo "函数结束"

运行

ruby 复制代码
houbinbindeMacBook-Pro:shell houbinbin$ vi function.sh
houbinbindeMacBook-Pro:shell houbinbin$ chmod +x function.sh
houbinbindeMacBook-Pro:shell houbinbin$ ./function.sh
函数开始
这是我的第一个 Shell 函数。
函数结束

带返回值的函数

sh 复制代码
#!/bin/sh


# 带返回值的函数

funcWithReturnVal() {
    echo "输入第一个数字: "
    read firstNum
    echo "输入第二个数字: "
    read secondNum
    return $(($firstNum+$secondNum))
}

echo "带返回值的函数开始:"
funcWithReturnVal
returnVal=$?
echo "结果: $returnVal"

运行

makefile 复制代码
houbinbindeMacBook-Pro:shell houbinbin$ ./funcWithReturnVal.sh
带返回值的函数开始:
输入第一个数字:
1
输入第二个数字:
2
结果: 3

带参数的函数

sh 复制代码
#!/bin/sh

# 带参数的函数

hasParam() {
    echo "所有参数为 $*"

    if [ $# -gt 0 ]
    then
    echo "有参数"
    return 1
    else
    echo "没有参数"
    return 0
    fi
}

hasParam 1 2 3

运行

ruby 复制代码
houbinbindeMacBook-Pro:shell houbinbin$ vi funcWithParam.sh
houbinbindeMacBook-Pro:shell houbinbin$ chmod +x funcWithParam.sh
houbinbindeMacBook-Pro:shell houbinbin$ ./funcWithParam.sh
所有参数为 1 2 3
有参数

使用$n获取参数值,当 n >= 10 时,使用 ${n}

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
Tony Bai4 小时前
Go 安全新提案:runtime/secret 能否终结密钥残留的噩梦?
java·开发语言·jvm·安全·golang
oioihoii4 小时前
C++11到C++23语法糖万字详解
java·c++·c++23
pengzhuofan4 小时前
Java演进与与工程师成长
java·开发语言
月明长歌4 小时前
再谈Java 继承与多态:从“能用”到“精通”,更深一层的原理与设计思维
java·开发语言
狗头实习生4 小时前
Spring常见的事务失效原因
java·数据库·spring
想个名字太难4 小时前
网络爬虫入门程序
java·爬虫·maven
diudiu_335 小时前
web漏洞--认证缺陷
java·前端·网络
heartbeat..6 小时前
注解 + 反射:Web 项目 Excel 一键导出工具 EnhancedExportExcelUtil 详解
java·excel·poi
lkbhua莱克瓦246 小时前
IO流练习(加密和解密文件)
java·开发语言·笔记·学习方法·io流·io流练习题
嘟嘟w6 小时前
Servlet的生命周期
java