点击上方蓝字 ● 关注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