当前位置: 技术问答>linux和unix
在shell程序中,函数的返回值问题,不明白!
来源: 互联网 发布时间:2015-10-23
本文导语: 程序如下: #!/bin/sh yes_or_no() { echo "Is your name $* ?" while true do echo -n "Enter yes or no:" read x case "$x" in y|yes) return 0;; n|no) return 1;; *) ...
程序如下:
#!/bin/sh
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo -n "Enter yes or no:"
read x
case "$x" in
y|yes) return 0;;
n|no) return 1;;
*) echo "Answer yes or no"
esac
done
}
echo "Original parameters are $*"
if yes_or_no "$1" #此处的结果到底是什么呢?true 还是 false?
then
echo "Hi $1, nice name" #为什么yes_or_no函数返回0的时候什么执行此处????
else
echo "Never mind"
fi
exit 0
请各位高手详细解答一下,非常感谢!
#!/bin/sh
yes_or_no()
{
echo "Is your name $* ?"
while true
do
echo -n "Enter yes or no:"
read x
case "$x" in
y|yes) return 0;;
n|no) return 1;;
*) echo "Answer yes or no"
esac
done
}
echo "Original parameters are $*"
if yes_or_no "$1" #此处的结果到底是什么呢?true 还是 false?
then
echo "Hi $1, nice name" #为什么yes_or_no函数返回0的时候什么执行此处????
else
echo "Never mind"
fi
exit 0
请各位高手详细解答一下,非常感谢!
|
if判断的是yes_or_no的执行状态值, 对于linux/unix, 返回值是0表示执行正确,
所以这里跟一般的理解可能不太一样.
所以这里跟一般的理解可能不太一样.
|
x86(大雪)说的对
|
if yes_or_no "$1" #此处的结果到底是什么呢?true 还是 false?
是由
y|yes) return 0;;
n|no) return 1;;
确定的
是由
y|yes) return 0;;
n|no) return 1;;
确定的
|
是按实际输入判断返回值的
case "$x" in
y|yes) return 0;;
n|no) return 1;;
case "$x" in
y|yes) return 0;;
n|no) return 1;;