👉博__主👈:米码收割机
👉技__能👈:C++/Python语言
👉公众号👈:测试开发自动化
👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术
shell函数操作(有参、无参、有返回值、无返回值)
文章目录
1. 定义函数并调用
1.1 无返回值、无参数函数
demoFun(){
echo "这是函数 "
echo "—函数执行"
echo "—函数执行完毕"
}
函数调用:
demoFun
运行结果:
这是函数
—函数执行
—函数执行完毕
1.2 有返回值、无参数函数
1.2.1 返回数值类型
return
可以用来退出函数并返回一个整数值给调用者。这个返回值只能是整数类型。
sum () {
local result=$(expr $1 + $2)
return $result
}
函数调用:
sum 10 20
result=$?
echo $result
运行结果:
30
1.2.2 返回字符串类型
#!/bin/bash
get_user_info(){
local name=$1
local age=$2
local sex=$3
echo "$name $age $sex"
}
函数调用:
result=$(get_user_info "Tom" 20 "male")
echo $result | {
read name age sex
echo "Name: $name"
echo "Age: $age"
echo "Sex: $sex"
}
运行结果:
Name: Tom
Age: 20
Sex: male
代码说明:
echo $result 命令将结果输出到管道中,然后使用大括号 {} 将一组命令组合在一起,从而创建一个新的命令块。read 命令从管道中读取输入,并将其分别赋值给 name、age 和 sex 变量。最后,使用 echo 命令打印输出变量的值。
拓展:
:如果shell解释器支持HereString语法,同样可以到上述代码的效果:
function get_user_info () {
local name=$1
local age=$2
local sex=$3
echo "$name $age $sex"
}
result=$(get_user_info "Tom" 20 "male")
read name age sex <<< $result
echo "Name: $name"
echo "Age: $age"
echo "Sex: $sex"
运行结果:
Name: Tom
Age: 20
Sex: male
1.3 无返回值、有参函数
使用$1、$2、$3表示取第几个参数的值
funparam(){
echo "第一个参数为$1"
echo "第二个参数为$2 "
echo "第三个参数为${3}"
echo "总参数有$#个"
}
函数调用:
funparam 1 2 3 4 5
运行结果:
第一个参数为1
第二个参数为2
第三个参数为3
总参数有5个