--------------------------------------------------------
函数返回值的问题
1.默认的退出状态
函数的最后一条命令
返回退出状态
因为函数最后一条命令的状态可能会影响前面执行的状态
所以不建议使用
2.使用return
使用return 的致命问题是返回值不能超过255(0~255)
3.直接函数输出
相当于在最后加一个输出语句echo
-----------------------------------------------------------------------------
函数中变量:全局变量,局部变量
#!/bin/bash
# 测试函数返回值
function fun1() {
echo "abcd"
ls -l adasdfas
}
function fun2() {
ls -l adasdfas
echo "abcd"
}
echo "Test the fun1:"
fun1
echo "Function fun1 exit status: $?"
echo "------------------------------------"
echo "Test the fun2:"
fun2
echo "Function fun2 exit status: $?"
一般不要这样做,这样做,函数最后一条命令,会掩盖函数中的其它错误
2、使用return
function fun3() {
read -p "Enter a value: " value
echo "Doubling the value"
return $[$value*2]
}
return 返回值其范围是: 0-255
3、函数输出(相当于在最后加一个输出语句)
function fun4() {
read -p "Enter a value: " value
echo "Doubling the value: $[$value*2]"
}
函数中变量:全局变量、局部变量
全局变量:在shell中都有效的变量,但有时在做函数时不经意间会修改了全局的值,
从而导致程序出现问题
局部变量:一般来讲用在函数中
使用方法:local 变量名
函数中尽可能使用局部变量
注意:无论是函数内外声明的变量,都是全局变量!这点和c不同,
c中,函数中的变量在调用函数结束后,其生命周期就结束了。
而shell中,无乱在哪里声明的变量,都是全局生存的。
这就是关键字local的意义.