分类: LINUX
2013-11-27 15:16:49
转载自:http://blog.csdn.net/ithomer/article/details/7954577
Shell函数返回值,一般有3种方式:return,argv,echo
1) return 语句结果:
mytest 1
arg1 = 1
1
mytest 0
arg1 = 0
0
mytest 2
arg1 = 2
0
mytest 1 = arg1 = 1
arg1 = 1
mytest 0 = arg1 = 0
arg1 = 0
mytest 0
if fasle
arg1 = 1
mytest 1
arg1 = 0
mytest 0
end
2) argv全局变量
这种就类似于C语言中的全局变量(或环境变量)。
示例:
结果:
mytest2
args 1
return 0
g_var=1
注: 以上两个方法失效的时候
以上介绍的这两种方法在一般情况下都是好使的,但也有例外。
其中,test.txt 文件中的内容如下:
456:kkk结果:
yxb
3) echo 返回值
其实在shell中,函数的返回值有一个非常安全的返回方式,即通过输出到标准输出返回。因为子进程会继承父进程的标准输出,因此,子进程的输出也就直接反应到父进程。因此不存在上面提到的由于管道导致返回值失效的情况。示例:
这 个方式虽然好使,但是有一点一定要注意,不能向标准输出一些不是结果的东西,比如调试信息,这些信息可以重定向到一个文件中解决,特别要注意的是,用到比 如grep这样的命令的时候,一定要记得1>/dev/null 2>&1来避免这些命令的输出。