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

相关推荐
长安城没有风1 天前
从入门到精通【Redis】初识Redis哨兵机制(Sentinel)
java·数据库·redis·后端
蒂法就是我1 天前
java集合类的底层类是哪个
java·开发语言
Hoking1 天前
LangChain4j集成SpringBoot接入百炼大模型(Qwen)
java·人工智能·spring boot·llm
浪里小白龙591 天前
零信任平台接入芋道框架
java
代码匠心1 天前
从零开始学Flink:流批一体的执行模式
java·大数据·后端·flink·大数据处理
一只程序烽.1 天前
java项目使用宝塔面板部署服务器nginx不能反向代理找到图片资源
java·服务器·nginx
Deryck_德瑞克1 天前
IDEA编译时报错OOM的解决方案
java·ide·intellij-idea
JH30731 天前
Idea中新建package包,变成了Directory
java·ide·intellij-idea
_extraordinary_1 天前
Java SpringMVC(三)--- SpringMVC,SpringIoC&DI
java·开发语言
计算机徐师兄1 天前
Java基于SpringBoot的智慧校园管理系统小程序【附源码、文档说明】
java·微信小程序·小程序·智慧校园管理系统小程序·java智慧校园管理系统小程序·智慧校园管理系统微信小程序·智慧校园管理微信小程序