日期:
来源:Linux公社收集编辑:聆听世界的鱼
点击上方蓝字 ● 关注Linux公社
在 bash 中创建函数
function_name () {commands}
function function_name {commands}
除非您调用函数,否则函数永远不会运行/执行。 函数定义必须先于对该函数的任何调用。
#!/bin/bashhello () {echo "Hello World! Linux迷 www.linuxmi.com"}hellohellohello
在 bash 中返回函数值
#! /bin/bash//Linux迷 www.linuxmi.comerror () {blablareturn 0}errorecho "错误函数的返回状态为: $?"
error函数将永远不会返回非零退出状态,因为 blabla 会导致 未找到命令 错误。将参数传递给 bash 函数
#!/bin/bash#Linux迷 www.linuxmi.comiseven () {if [ $(($1 % 2)) -eq 0 ]; thenecho "$1 是偶数。"elseecho "$1 是奇数。"fi}iseven 5iseven 2iseven 28iseven 199
#!/bin/bash#Linux迷 www.linuxmi.comfun () {echo "$1 是 fun() 第一个参数。"echo "$2 是 fun() 第二个参数。"}echo "$1 是脚本的第一个参数。"echo "$2 是脚本的第二个参数。"fun linuxmi 93139
bash 函数中的局部变量和全局变量
#!/bin/bash#Linux迷 www.linuxmi.coma1='X'a2='Y'myfun() {local v1='Z'v2='W'echo "Inside myfun(): a1: $a1, a2: $a2"}echo "Before calling myfun(): v1: $a1, a2: $a2"myfunecho "After calling myfun(): a1: $a1, a2: $a2"
与全局变量同名的局部变量将优先于函数体内的全局变量。 您可以从函数内更改全局变量。
递归函数
#!/bin/bash#Linux迷 www.linuxmi.comfactorial () {if [ $1 -le 1 ]; thenecho 1elselast=$(factorial $(( $1 -1)))echo $(( $1 * last ))fi}echo -n "4! is: "factorial 4echo -n "5! is: "factorial 5echo -n "6! is: "factorial 6
if [ $1 -le 1 ]; thenecho 1
factorial(n) = n * factorial(n-1)
last=$(factorial $(( $1 -1)))echo $(( $1 * last ))
链接:https://www.linuxmi.com/bash-1-functions.html
关注我们 长按或扫描下面二维码关注 Linux公社
关注 Linux公社,添加“ 星标 ”
每天 获取 技术干货,让我们一起成长
合作联系:root@linuxidc.net