一、shell中的函数
概念:我们常常把完成固定功能,并且多次使用的一组命令或者语句封装在一个固定的结构中,这个结构,我们就叫做函数。
[1]定义方式(不传参)
格式一:
function 函数名()
{
命令1
命令2
: #空命令,不执行任何操作
return 整数; //return只能返回整数
}
格式二:
函数名()
{
命令1
命令2
STR="hello world" 字符串
echo $STR
}
调用方法:函数名
获得返回值的方法:
<1>若是返回值是整数。
函数名 参数1 参数2
ret=$? (此种方法,只能接收整数)
<2>若是需要返回字符串
ret=`函数名 参数1 参数2`
echo "ret : $ret" (此种方法,一般用于接受字符串,把屏幕上输出的数据,保存在变量中)
eg1:
#! /bin/bash
#函数的定义
function fun_test1()
{
echo "I come to fun_test1"
}
fun_test2()
{
echo "I come to fun_test2"
}
# main函数
STRING="welcome to wuhan"
echo $STRING
#函数的调用
fun_test1
fun_test2
eg2:
#! /bin/bash
#函数的定义
function fun_test1()
{
VAR1=100
return $VAR1
}
fun_test2()
{
VAR2="I come to fun_test2"
echo $VAR2
}
# main函数
STRING="welcome to wuhan"
echo $STRING
#fun_test1 #函数的调用
#ret=$?
#echo "ret : $ret"
ret=`fun_test2`
echo "ret : $ret"
eg3:
#! /bin/bash
#函数的定义
function fun_test1()
{
VAR1=100
echo '$0' : $0
echo '$1' : $1
echo '$2' : $2
return $VAR1
}
# main函数
STRING="shell function is start...."
echo $STRING
fun_test1 "hello1" "world2"
ret=$?
echo "ret : $ret"
eg4:
#! /bin/bash
#函数的定义
function fun_test1()
{
VAR1=100
#shell中函数中使用的变量,默认是全局有效的,作用范围,当函数调用后,到整个程序结束。
echo '$1' : $1
echo '$2' : $2
return $VAR1
}
# main函数
STRING="shell function is start...."
echo $STRING
echo "1 VAR1 :$VAR1"
fun_test1 "hello1" "world2"
ret=$?
echo "ret : $ret"
echo "1 VAR1 :$VAR1"