您的位置:首页 > 运维架构 > Shell

shell 函数返回值的方法

2008-01-10 23:28 295 查看
shell 函数返回值的方法

从shell函数中返回的数值的方法不多,有本书书里说只有写入文件或者全局变量。(The only way to return a value to the calling program is to write it to a file (or standardoutput) and have the calling program read (or assign) the value back into a variable. )本文总结了即总方法:1.echo 法, 2.全局变量法,并给出了实例。其他方法以后再慢慢补充。

1. echo 法

在被调用函数中需要返回的值,使用echo将其显示至stdout,然后在调用的地方再使用`func var1`获得stdout中的值,获得值可以直接赋值给变量。例如:


#!/bin/bash




# Author: Aaron.Cheng


# Date: 2007-1-10

# Check


# Core


# echo法,返回一个字符串的长度


varCnt()


{


var=$1 ret=0


if [ "$var" != "" ] ; then


ret=${#var}


fi


echo $ret


}




main()


{


printf "varCnt's 's return value is %s " `varCnt ""`


printf "varCnt's 's return value is %s " `varCnt "1234"`


}




main




# Clear


exit 0

2. 全局变量法

这个比较简单,声明一个全局变量 declare -i g_ret ,在function的返回值存储在全局变量中。调用处在函数执行完后,使用就可以了。例如:


#!/bin/bash




# Author: Aaron.Cheng


# Date: 2007-1-10




# Check




# Core


# echo法,返回一个字符串的长度


declare -i g_ret=0


varCntGlobeVar()


{


var=$1


if [ "$var" != "" ] ; then


g_ret=${#var}


fi


}




main()


{


varCntGlobeVar ""


printf "varCntGlobeVar's 's return value is %d " $g_ret


varCntGlobeVar "1234"


printf "varCntGlobeVar's 's return value is %d " $g_ret


}




main




# Clear


exit

3. other.....in building..............:-)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: