bash编程中的函数

总结bash编程中的函数用法

语法格式

bash中有两中定义函数的方法

1
2
3
4
5
6
7
8
9
10
# 1
function name {
commands
}

# 2
name () {
commands
}
#注意第二种方法()中不可以有东西

注意,name{ 之间必须有一个空格,否则报错


返回值

在bash中,默认情况下的函数返回值是最后一个命令执行后的返回值,使用$?来表示函数的返回值。所以,我们无法知道其他命令是否成功执行。有两种方法可以解决这个问题

return语句

这个语句可以指定一个返回值,使用这个语句必须注意:

  • 实际上这个语句是将设置的返回值存放至$?变量
  • 返回值的范围 0-255 之间,如果大于或小于这个范围就会返回一个不一致的值
  • 如果在用$?变量提取函数返回值之前执行了其他命令,那么函数的返回值会丢失。记住,$?变量保存的是最后执行的那个命令的退出状态码。

缺点

  • 使用这个方法只可以返回整数,无法返回浮点数、字符、字符串。

使用变量接受返回值

由于直接使用$?有上述的缺点,所以可以不使用$?而直接使用一个变量接受返回值。

1
2
3
4
5
6
7
function add{
n=$[ $1 /* $2 ]
return n
}

re=$(add)
echo "return is $re"

上述代码注意:

  • 乘法在bash中必须被专一
  • $()相当于开一个新shell执行add函数

这种方法可以返回浮点数、字符、字符串


参数

如何向函数传递参数,在bash中使用特殊的变量:$+数字,注意$0表示的是函数名,$1表示函数的第一个参数。

变量

bash中有全局变量和局部变量,默认就是全局变量,要定义局部变量使用local


bash编程中的函数
https://ysc2.github.io/ysc2.github.io/2023/12/10/bash编程中的函数/
作者
Ysc
发布于
2023年12月10日
许可协议