Bash 函数是对经常一起使用的一系列命令进行分组的便捷方法。它们允许您重用代码,使您的脚本更有条理且更易于阅读,并且无需一遍又一遍地键入相同的命令,从而节省您的时间。
要在 Bash 中创建函数,请使用 function 关键字,后跟函数名称和一对花括号,将构成该函数的命令括起来。例如:
|
function greeting {
echo “你好世界!”
}
|
这创建了一个名为的函数‘问候’只是输出字符串“你好世界!”当它被调用时。
要调用函数,您只需在 shell 脚本中键入其名称即可。例如:
这将执行内的命令‘问候’函数,在本例中只是 echo 命令。
带参数的 Bash 函数
您还可以在调用函数时通过将参数列出在括号内来将参数传递给函数。例如:
|
function greeting {
echo “你好,1美元!”
}
greeting “约翰·多伊”
|
这将输出“你好,约翰·多伊!”因为`$1`函数内的变量指传递给函数的第一个参数(在本例中为“John Doe”)。您可以使用 $2、$3 等来引用第二个、第三个和后续参数。
如果调用函数时未提供参数,您还可以指定参数的默认值。例如:
|
function greeting {
name=${1:-World}
echo “你好,$name!”
}
问候语
greeting "John"
|
第一次调用 `greeting` 将输出“你好世界!”因为如果没有提供参数,name 变量将设置为默认值“World”。第二次调用 `greeting` 将输出“你好约翰!”因为 name 变量被设置为第一个参数(“John”)的值。
使用构建命令定义参数类型
使用`声明`内置命令中,您还可以指定函数所需的参数类型。例如:
|
function add {
declare -i num1=$1
declare -i num2=$2
echo $((num1 + num2))
}
add 1 2
|
该函数需要两个整数参数,并使用`$((…))`算术扩展语法。这`声明-i`flag 告诉 Bash 将变量视为整数。
带有局部变量的 Bash 函数
Bash 函数也有局部变量,这些变量只在函数内部可见,在函数外部不可访问。要创建局部变量,您可以使用`local`关键字后跟变量名称。例如:
|
function count {
local i
for i in {1..5}; do
echo $i
done
}
count
echo $i
|
count 函数创建一个名为的局部变量`i`用于从 1 数到 5。 echo`$i`函数外部的语句不会输出任何内容,因为`i`变量未在函数外部定义。
有返回值的函数
您还可以使用以下函数从函数返回值`return`内置命令。 return命令的值是函数的退出状态,它是一个数字,指示函数是否成功完成或遇到错误。 A`return`的价值`0`表示成功,非零值表示错误。
例如:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function add {
if [[ $# -ne 2 ]];然后
return 1
fi
declare -i num1=$1
declare -i num2=$2
return $((num1 + num2))
}
add 1 2
echo $?
add 1
echo $?
|
add 函数检查以确保它已收到恰好两个参数。如果没有,则返回值 1 以指示错误。否则,它将两个参数相加并返回结果。
The `回声$?`每次调用add函数后的命令都会输出该函数的返回值。第一次调用将输出 3,第二次调用将输出 1。
打印函数中的值
除了返回值之外,您还可以使用 echo 命令打印函数中的值。例如:
|
function add {
if [[ $# -ne 2 ]];然后
return 1
fi
declare -i num1=$1
declare -i num2=$2
echo $((num1 + num2))
}
result=$(add 10 20)
echo “结果是$结果。”
|
这段代码将输出“结果是30。”因为 add 函数是使用命令替换($(…) 语法)调用的,并且结果存储在 result 变量中。
Bash 函数非常强大,是组织和简化脚本的宝贵工具。它们允许您重用代码,使脚本更具可读性,并且不必一遍又一遍地键入相同的命令,从而节省时间。