曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5440|回复: 0
打印 上一主题 下一主题

return 与函数返回值

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2011-5-5 11:08:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
bash shell 用 return 命令从函数中返回一个值,以表示函数的退出状态:
[Bash shell] 纯文本查看 复制代码
 
#!/bin/bash
function ret {
 read -p "Enter return value:" value
 echo "doubling the value"
 return $[ $value * 2 ]
}
ret
echo "The new value is $?"


运行输出:

$ sh return.sh
Enter return value:100
doubling the value
The new value is 200
但是用 return 返回数据时要注意返回值的取值范围是 0~256 .
再运行一下上面的脚本可看到:
$ sh return.sh
Enter return value:129
doubling the value
The new value is 2
已经发生了回绕,即 129*2 - 256 = 2 。

如果希望返回更大的整数或字符串,可以使用下面的技巧:
[Bash shell] 纯文本查看 复制代码
 
#!/bin/bash
function ret {
 read -p "Enter return value:" value
 echo $[ $value * 2 ]
}

result=`ret`
echo "The new value is $result"

运行输出:
$ sh return.sh
Enter return value:300
The new value is 600
需要注意的是,上面的 ret 函数要用 `` 号,而不是单引号括起来。另外,这个方法还可以返回浮点数和字符串,如:
[Bash shell] 纯文本查看 复制代码
 
#!/bin/bash
function ret {
 echo "hello bash shell"
}

result=`ret`
echo "The new value is \"$result\""


运行输出:

$ sh return.sh
The new value is "hello bash shell"
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-15 14:50 , Processed in 0.077560 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表