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 fname
filename" 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 递归函数

递归函数调用本身。递归是一种有用的技术,用于简化某些复杂的算法并解决复杂的问题。

##代码##