什么是函数,函数就是一段代码,这段代码可以在我们需要的位置调用,那么这段代码就叫做函数。
在Shell中,定义一个函数有两种方法。
1. 使用关键字 function
function name
{
}
#!/bin/bash
function func1
{
echo " this is a function"
}
count=1
while [ $count -le 5 ]
do
func1
count=$[$count +1 ]
done
echo " the loop end"
这种方式有种Shell 的感觉,那么第二种就有一种我们普通常见的函数的感觉了
name()
{
}
#!/bin/bash
function func1
{
echo " this is a function"
}
func2()
{
echo " this is the function two"
}
count=1
while [ $count -le 5 ]
do
func1
func2
count=$[$count +1 ]
done
echo " the loop end"
这里在定义函数的时候要注意,如果我们在定义函数前使用了函数。那么就会提示我们找不到这个命令了
#!/bin/bash
function func1
{
echo " this is a function"
}
count=1
while [ $count -le 5 ]
do
func1
func2
count=$[$count +1 ]
done
func2()
{
echo " this is the function two"
}
echo " the loop end"
如果是这样的话,那么func2就会报错了
#!/bin/bash
function func1
{
echo " this is a function"
}
func1()
{
echo " this is the recover function"
}
count=1
while [ $count -le 5 ]
do
func1
count=$[$count +1 ]
done
echo " the loop end"
这样,我们的函数1就会被覆盖,所在Shell脚本中定义函数的时候一定要注意名字的唯一性
和我们普通编程一样,Shell脚本中的函数也可以有返回值,bash shell会把函数当做一个小型的脚本,运行结束时会返回一个退出状态码。有三种不同的方法可以来为函数生成退出状态码
1. 使用默认的退出状态码
默认的状态码是函数中最后一条命令返回的退出状态码。在函数结束后,使用标准的$?变量来决定函数的退出状态码
#!/bin/bash
function func1
{
echo " this is a function"
}
func1()
{
echo " this is the recover function"
}
count=1
while [ $count -le 5 ]
do
func1
echo " the function exit status is: " $?
count=$[$count +1 ]
done
echo " the loop end"
2. 使用return来返回
#!/bin/bash
function func1
{
value=88
echo " this is a function"
return $value
}
:<
func1()
{
echo " this is the recover function"
}
!
count=1
while [ $count -le 5 ]
do
func1
echo " the function exit status is: " $?
count=$[$count +1 ]
done
echo " the loop end"
不过这个的不好支持就在于这里返回的状态码只能是0-255
要向返自己的内容,就需要用到第三种方式
文本输出 echo
这里就不哔哔了,今天先到这。等有时间在看
后面是在函数中使用变量了