Shell 函数传参

正文

首先先说函数,emm….,没啥好说的,就是下面的样子。

1
2
3
4
5
6
方法名() {

}

# 调用的话直接抄一遍方法名即可
方法名

然后是传参,分为
1. 执行 sh 文件传参
2. shell 代码中调用函数的 传参

首先先说执行 shell 文件传参

简单就是后面以空格分开,然后哒哒哒的把参数跟上就可以了,比如:

1
sh start.sh a b c d

然后在 shell 程序以 $n 取即可,n 从 1 开始。例如 $1 取到的是 a,$2 取到的是 b。

然后是函数的参数传递,跟运行 shell 文件传参用起来差不多。

程序中函数内使用 $n,n 从 1 开始取。传参的话就在调用的时候以空格分开即可。

1
方法名 a b c d

注意点

如果函数传参的话,那么函数内的 $n 取到的是调用函数传的参数,在函数内是取不到调用 shell 文件传递的参数的,需要将参数设为变量再丢给函数使用。

举个栗子:

1
2
3
4
5
6
test() {
echo $1
}

echo $1
test

执行 sh test.sh 1 输出的结果会为下图,函数取到的为空。