星途物语 星途物语
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)

星途物语

尚记时,记之
首页
  • 随手记录
  • 故障处理
  • Nginx
  • MySQL
  • Ansible
  • Nexus
  • Tomcat
  • Docker
  • Zabbix
  • Prometheus
  • Git
  • GitLab
  • Jenkins
  • Kubernetes
  • Shell
  • Python
  • 圈圈空间
  • 做饭这件事
收藏站点
留言板
归档
GitHub (opens new window)
  • Shell学习笔记

    • 定义变量
    • 特殊变量
    • 转义字符
    • 命令替换
    • 变量替换
    • 运算符
    • 字符串和数组
    • 条件控制
    • 函数
    • 变量取值处理
    • 常见shell有哪些?缺省的是哪个
  • Python学习笔记

    • Python基础
  • 编程
  • Shell学习笔记
星途物语
2025-01-01

函数

1.定义函数

function function_name () {
    list of commands
    [ return value ]
}
1
2
3
4

其中function关键字是可选的

例子:

#!/bin/bash

hello(){
	echo 'hello world';
}

hello

# 结果
hello world
1
2
3
4
5
6
7
8
9
10

2.函数调用

调用函数只需要给出函数名,不需要加括号

函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值

Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。如果 return 其他数据,比如一个字符串,往往会得到错误提示:numeric argument required,除非这个字符串是数字

如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值

#!/bin/bash

function hello(){
	echo "hello world";
}

str=$(hello)

echo $str
echo $str
1
2
3
4
5
6
7
8
9
10

如果你希望直接从终端调用函数,可以将函数定义在主目录下的 .profile 文件,这样每次登录后,在命令提示符后面输入函数名字就可以立即调用

3.函数参数

在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 $n 的形式来获取参数的值,例如,$1表示第一个参数,$2表示第二个参数...

注意,$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数

4.获取函数返回值

当你希望将函数或命令的输出结果赋值给变量时,你需要使用命令替换机制。Bash 支持两种命令替换语法:

  • 反引号:``
  • $()
#!/bin/bash

function sum()
{
	echo `expr 1+2+3`
}

num=$(sum)
1
2
3
4
5
6
7
8
#Shell
条件控制
变量取值处理

← 条件控制 变量取值处理→

Theme by Vdoing | Copyright © 2025-2025 | 鄂ICP备2024086820号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式