Bash Shell脚本函数
时间:2019-11-20 08:53:03 来源:igfitidea点击:
什么是shell函数?
在Linux中如何创建shell脚本函数?
函数是shell脚本中的子程序或者子脚本。
用于将复杂的脚本分解成单独的任务。
从而提高脚本的整体可读性和易用性。
和其他编程语言不同,shell函数无法返回值。他们返回状态码。
声明shell函数
必须先声明shell函数,然后才能使用它们。
声明shell函数的语法为:
function name(){ Commands }
或者
name(){ Commands return $TRUE }
然后我们可以通过输入函数名称来调用函数:
name
示例
创建一个名为file.sh的shell脚本:
#!/bin/bash # 定义 usage 函数 usage(){ echo "Usage:fname(){ echo "Foo" } export -f fnamefilename" exit 1 } # 定义 file_exits 函数 file_exits(){ local f="" [[ -f "$f" ]] && return 0 || return 1 } # 如果没有提供文件名,则调用函数usage [[ $# -eq 0 ]] && usage # 调用file_exits函数 if ( file_exits "" ) then echo "File found" else echo "File not found" fi
shell脚本中导出函数
您需要使用export命令:
fname(){ echo "Foo" } usage(){ echo "Usage:#!/bin/bash # 全局 x and y x=200 y=100 math(){ # 局部变量 local x= local y= echo $(( $x + $y )) } echo "x: $x and y: $y" # 调用函数 echo "Calling math() with x: $x and y: $y" math 5 10 echo "x: $x and y: $y after calling math()" echo $(( $x + $y ))foo bar" exit 1 } readonly -f usage readonly -f fname
将函数设置为只读
您可以在脚本顶部创建函数,并使用readonly命令设置readonly属性:
#!/bin/bash foo(){ # do something # if not false call foo foo } # call foo foo
函数的局部变量
使用local命令创建局部变量:
##代码##shell 递归函数
递归函数调用本身。递归是一种有用的技术,用于简化某些复杂的算法并解决复杂的问题。
##代码##