1、函数
格式:
func() {
command
}
function 关键字可写,也可不写。
示例 1:
#!/bin/bash
func() {
echo "This is a function."
}
func
# bash test.sh
This is a function.
Shell 函数很简单,函数名后跟双括号,再跟双大括号。通过函数名直接调用,不加小括号。
示例 2:函数返回值
#!/bin/bash
func() {
VAR=$((1+1))
return $VAR
echo "This is a function."
}
func
echo $?
# bash test.sh
2
return 在函数中定义状态返回值,返回并终止函数,但返回的只能是 0-255 的数字,类似于 exit。
示例 3:函数传参
#!/bin/bash
func() {
echo "Hello $1"
}
func world
# bash test.sh
Hello world
通过 Shell 位置参数给函数传参。
函数也支持递归调用,也就是自己调用自己。
例如:
#!/bin/bash
test() {
echo $1
sleep 1
test hello
}
test
执行会一直在调用本身打印 hello,这就形成了闭环。
像经典的 fork 炸弹就是函数递归调用:
:(){