Shell 输入输出
Shell 文件包含 

Shell 函数

在 Shell 脚本中,函数是一种重要的结构,用于封装一段代码并为其命名,以便在需要时重复调用。函数可以帮助提高代码的模块化和可维护性。下面是关于Shell函数的基本知识和用法:


定义函数

在Shell脚本中,函数定义采用以下语法:

function_name() {
    # 函数体(一系列命令)
}

或者也可以写成:

function function_name {
    # 函数体(一系列命令)
}

例如,定义一个简单的hello world:

sayHello() {

    echo "hello world!"

}


调用函数

调用函数时,直接使用函数名即可:

sayHello()


带参数的函数

函数可以接受参数,参数在函数内部通过 $1, $2, $3, ... $n 来访问,分别表示第一个参数、第二个参数,依此类推。

greet() {
    echo "Hello, $1!"
}
greet "Alice"


这段代码会输出 Hello, Alice!。


返回值

Shell函数可以通过 return 语句返回一个值,但是只能返回整数值,不能返回字符串。

add() {
    local result=$(( $1 + $2 ))
    return $result
}
add 5 3
echo "Sum is: $?"

在这个例子中,$? 会输出函数的返回值,即 8。


局部变量

在函数内部使用 local 关键字可以声明局部变量,避免与全局变量产生冲突。

example() {
    local name="Jerry"
    echo "Hello, $name!"
}

name="Susan"
example
echo "Outside function: $name"

输出为:

Hello, Jerry!
Outside function: Susan


删除函数

使用 unset 命令可以删除已定义的函数。

unset -f function_name


示例

下面是一个稍复杂的示例,演示了函数的定义、调用、参数传递和返回值的使用:

# 定义一个函数,计算平方
square() {
    local num=$1
    local squared=$(( num * num ))
    echo "Square of $num is: $squared"
}

# 调用函数,传递参数
square 4

# 定义一个函数,计算两个数的和
add() {
    local result=$(( $1 + $2 ))
    return $result
}

# 调用函数,接收返回值
add 2 3
sum=$?
echo "Sum is: $sum"


这些例子展示了如何在 Shell 脚本中定义和使用函数,函数在编写大型脚本或需要重复执行相似操作时非常有用。