Bash 函数定义、参数与返回状态
Shell 函数把一组命令封装成可重复调用的名称。函数应在首次调用前完成定义。
定义与调用
#!/usr/bin/env bash
hello_world() {
printf '%s\n' 'Hello, World!'
}
hello_world也可以使用 function name { ...; } 形式,但 name() { ...; } 更接近 POSIX Shell 语法。
传递参数
函数内部通过位置参数读取调用时传入的值:
#!/usr/bin/env bash
show_values() {
printf '第一个参数:%s\n' "$1"
printf '第二个参数:%s\n' "$2"
printf '第十个参数:%s\n' "${10}"
}
show_values '111' '222'常用特殊参数:
$#:参数数量。"$@":逐个保留全部参数。$?:上一条命令或函数的退出状态。
返回状态与输出值
return N 设置的是函数退出状态,范围通常为 0 至 255。0 表示成功,非零值表示失败:
is_readable_file() {
[[ -f $1 && -r $1 ]]
}
if is_readable_file 'example.txt'; then
printf '%s\n' '文件存在且可读'
fi需要返回文本时,让函数写到标准输出,再使用命令替换接收:
greeting() {
printf 'Hello, %s!\n' "$1"
}
message=$(greeting 'Alice')
printf '%s\n' "$message"函数调用其他函数
function_two() {
printf '%s\n' 'function two'
}
function_one() {
printf '%s\n' 'function one'
function_two
}
function_one