linux 的shell怎么得到函数返回值?

#!/bin/bash
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo "Enter yes or no"
read x
case "$x" in
yes ) return 0 ;;
no ) return 1;;
esac
done
}

echo "Original parameters are $*"
i=$( yes_or_no $1) //我这样写主要是参考了set获取date所有变量的写法,set(date);但是现在这一句话不对啊,请各位帮帮忙啊。
1echo $i
exit 0

函数的返回值实际上就是函数的退出状态
yes_or_no Kitty
i=$?
就可以了。
$? 代表上一条指令的退出状态。
怎样使用if语句就随便你了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-04
这个 return 要用 if 来判断的:
#!/bin/bash
yes_or_no()
{
    echo "Is your name $* ?"
    while true
    do
        echo "Enter yes or no"
        read x
        case "$x" in
            yes ) return 0 ;;
            no ) return 1;;
        esac
    done
}
echo "Original parameters are $*"
if yes_or_no $1
then
    i=1
else
    i=0
fi
echo "结果i=$i"
exit 0

追问

非常谢谢你的回答,让我觉得百度的朋友还是很热心的;你可以看看上面那个人写的,他就用了一种别的办法,还是很不错的。

追答

嗯,我的写法跟他的是一个意思,我写复杂了:

if yes_or_no $1
then
    i=1
else
    i=0
fi
相当于
yes_or_no $1
if $?
then
    i=1
else
    i=0
fi

如果你后续要用 $i 来做判断的话,那就不需要赋值了:

if yes_or_no $1
then
    做返回1的时候的各种操作
else
    做返回0的时候的各种操作
fi

追问

兄弟,顺便看看这个问题怎么解决啊

追答

看了一下,那有挺多热心人帮忙的了,那个问题我也不熟悉,而且比较需要实际环境测试操作,所以我可能帮不上啦。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网