linux shell中获得进程返回值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell中获得进程返回值相关的知识,希望对你有一定的参考价值。
se "$x" iny | 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 $1then
i=1
else
i=0
fi
相当于
yes_or_no $1
if $?
then
i=1
else
i=0
fi
如果你后续要用 $i 来做判断的话,那就不需要赋值了:
if yes_or_no $1then
做返回1的时候的各种操作
else
做返回0的时候的各种操作
fi追问
http://zhidao.baidu.com/question/744263034801672212.html?sort=6#answer-1524842353 兄弟,顺便看看这个问题怎么解决啊
追答看了一下,那有挺多热心人帮忙的了,那个问题我也不熟悉,而且比较需要实际环境测试操作,所以我可能帮不上啦。
以上是关于linux shell中获得进程返回值的主要内容,如果未能解决你的问题,请参考以下文章