当前位置: 技术问答>linux和unix
请教一个关于shell函数返回值的问题
来源: 互联网 发布时间:2017-05-06
本文导语: 今天学习shell函数的时候,发现一个问题: 比如我有一个test.sh的文件,内容如下 fun(){ host=$1 return ping -c1 $host >/dev/null 2>&1 } fun2(){ host=$1 ping -c1 $host >/dev/null 2>&1 return $? } fun hpcs09 echo "fun return is: "$? fun2 hpcs0...
今天学习shell函数的时候,发现一个问题:
比如我有一个test.sh的文件,内容如下
运行这个文件之后发现fun()和fun2()的返回值分别是255和0。
请问熟悉shell的朋友这两种return的写法为什么得到的值不一样?
比如我有一个test.sh的文件,内容如下
fun(){
host=$1
return ping -c1 $host >/dev/null 2>&1
}
fun2(){
host=$1
ping -c1 $host >/dev/null 2>&1
return $?
}
fun hpcs09
echo "fun return is: "$?
fun2 hpcs09
echo "fun2 return is: "$?
运行这个文件之后发现fun()和fun2()的返回值分别是255和0。
请问熟悉shell的朋友这两种return的写法为什么得到的值不一样?
|
你这是。。。
fun(){
host=$1
return `ping -c 1 $host >/dev/null 2>&1`
}
这样就一样了
fun(){
host=$1
return ping -c 1 $host
}
你这样试试就知道为什么了,这是执行函数报错了。。。
然后你把输出重定向了,就看不到错误了~~
fun(){
host=$1
return `ping -c 1 $host >/dev/null 2>&1`
}
这样就一样了
fun(){
host=$1
return ping -c 1 $host
}
你这样试试就知道为什么了,这是执行函数报错了。。。
然后你把输出重定向了,就看不到错误了~~
|
return [n]
Causes a function to exit with the return value specified by n.
return的参数是一个数值, 不是一个命令
Causes a function to exit with the return value specified by n.
return的参数是一个数值, 不是一个命令