linux shell中获得进程返回值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell中获得进程返回值相关的知识,希望对你有一定的参考价值。

se "$x" in
y | yes ) return 0;;
n | no ) return 1;;
* ) echo "Answer yes or no"
shell结束用return跳出while true

while true 是一直为真,不断循环,直到输入yes或no时,用return退出shell程序。程序结束了,循序肯定也结束了。

-------------------------
补充:也就是说while true 实际是一个死循环。我可以这样理解么?我们是用return 返回0或1来退出循环。能把代码运行步骤说一下么。输入三个数据分别是yes,no.和其他任意的。

可以说是死循环。不是说所有的死循环都不好,这里的死循环保证了程序一直运行,直到得到你想要的结果。
输入yes,返回0,就是正常结束
输入no,返回1,就是异常结束
输入其它的,则进行下一轮循环,要求你重新输入
参考技术A $# 传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数
$$ 脚本运行的ID号
$! 后台运行的最后一个进程的ID号
$@ 与$#相同,但是使用时加引号,并在引号中返回每个参数。
$- 显示shell使用的当前选项。
$? 显示最后命令的推出状况。0表示没有错误。 来
参考技术B echo $? 就可以输出了。shell中$?的值是上一个进程的返回值,可以直接使用。 参考技术C echo $?

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语句就随便你了。
参考技术A 这个 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

追问

http://zhidao.baidu.com/question/744263034801672212.html?sort=6#answer-1524842353 兄弟,顺便看看这个问题怎么解决啊

追答

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

以上是关于linux shell中获得进程返回值的主要内容,如果未能解决你的问题,请参考以下文章

linux shell中获得进程返回值

java运行linux命令获得返回值的问题

VB关于Shell函数的返回值

每天三分钟搞定linux shell脚本26 函数返回值

Linux中echo命令的返回值代表啥意思?

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