在bash中,有两种方式来声明一个函数。

方式一

function function_name {
command...
}
# 注意function_name后面有一个空格

方式二

function_name() {
command...
}
#小括号后面有一个空格

bash中参数的传递是通过位置而不是名字,位置是通过​​$1,$2,...​​​来表示,第一个参数的位置是$1。​​$0​​是脚本名称的位置。

比如执行​​get_num 99 97​​​,
$0 -> get_num
$1 -> 99
$2 -> 97


看一个例子

#!/usr/bin/env sh

foo 1 # foo还没有声明,所以此句会报错
foo() {
echo "Parameter #1 is $1"
}

foo 2 # this will work.

Output:

./myScript.sh: line 2: foo: command not found
Parameter #1 is 2

参考:
​​​ https://stackoverflow.com/questions/6212219/passing-parameters-to-a-bash-function​