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 递归函数
递归函数调用本身。递归是一种有用的技术,用于简化某些复杂的算法并解决复杂的问题。
##代码##
