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 发布!

相关推荐
俺爱吃萝卜4 分钟前
Spring Boot 3 + JDK 17:新一代微服务架构最佳实践
java·spring boot·架构
曹牧9 分钟前
Spring :component-scan
java·后端·spring
下地种菜小叶19 分钟前
定时任务系统怎么设计?一次讲清任务注册、分布式调度、幂等执行与失败补偿
java·开发语言·数据库·oracle·rabbitmq
做个文艺程序员22 分钟前
Spring Boot 项目集成 OpenClAW【OpenClAW + Spring Boot 系列 第1篇】
java·人工智能·spring boot·开源
withelios35 分钟前
Java泛型全面理解指南
java
withelios35 分钟前
Java枚举全解析:从基础到高级使用技巧
java·后端
yngsqq1 小时前
编译的dll自动复制到指定目录并重命名
java·服务器·前端
曹牧1 小时前
Spring:@RequestMapping
java·后端·spring
霸道流氓气质1 小时前
SpringBoot+LangChain4j+Ollama实现本地大模型语言LLM的搭建、集成和示例流程
java·spring boot·后端
iiiiyu1 小时前
常用API(SimpleDateFormat类 & Calendar类 & JDK8日期 时间 日期时间 & JDK8日期(时区) )
java·大数据·开发语言·数据结构·编程语言