linux shell 函数 返回值

风声边界 2010-08-23 08:35:46
如何获取shell自定义函数的返回值
func()
{
prog=`pidof test`
if [ -z $prog ] ;then
return 1
else
return -1
}

ret=func

如何获取返回值
ret=`func`
...全文
600 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
风声边界 2010-08-24
  • 打赏
  • 举报
回复
找到原因了
if [ -n $prog ]
if [ -n "$prog" ]
是不一样的

另外
函数返回值和函数执行结果返回值是不一样的
jessiefn 2010-08-24
  • 打赏
  • 举报
回复
$?是最近一条命令的返回结果,不限于函数。
Linux系统中自带的一些命令通常约定:返回值0表示成功,其它表示失败
masmaster 2010-08-23
  • 打赏
  • 举报
回复

root@yeah ~
$ func () { read;[[ $REPLY == "a" ]] && return 0 || return 1; }

root@yeah ~
$ func
ab

root@yeah ~
$ echo $?
1

root@yeah ~
$ func
a

root@yeah ~
$ echo $?
0

root@yeah ~
$ func
ds2

root@yeah ~
$ echo $?
1

root@yeah ~
$ func
a

root@yeah ~
$ echo $?
0

root@yeah ~
$
风声边界 2010-08-23
  • 打赏
  • 举报
回复
我要当的是返回的1或者-1

$?一直是1啊!!!!
yzx714 2010-08-23
  • 打赏
  • 举报
回复
$?保存着返回值
mars199 2010-08-23
  • 打赏
  • 举报
回复
#!/bin/sh
func()
{
prog=`pidof test`
if [ -z $prog ] ;then
return 1
else
return -1
fi
}
func
ret=$?
echo $ret
steptodream 2010-08-23
  • 打赏
  • 举报
回复

#!/bin/sh
func()
{
prog=`pidof test`
if [ -z $prog ] ;then
return 1
else
return -1
fi
}
func
ret=$?
echo $ret

23,116

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧