本文主要是介绍linux shell中yes_or_no()函数返回值的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在看Linux 程序设计的时候,碰到下面的问题;
#!/bin/shyes_or_no() {echo "Is you name $* ?"while truedoecho -n "Enter yes or no : "read xcase "$x" in y|yes ) return 0;;n|no ) return 1;;* ) echo "Answer yes or no!"esacdone
}echo "Original parameters are $* "if yes_or_no "$1"
then echo "Hi $1,good name "
elseecho "Never mind "
fi
exit 0
运行程序时
:$ ./my_name Rick Neil
Original parameters are Rick Neil
Is your name Rick ?
Enter yes or no: yes
Hi Rick, nice name
问题是输入yes之后,函数yes_or_no()的返回值是 return 0;
但是为什么后面主函数输出还 执行下面的指令?
if yes_or_no "$1"
then echo "Hi $1,good name "
后来查资料解决了,以前没接触过Unix系统;在Unix系统中,
if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令.
这篇关于linux shell中yes_or_no()函数返回值的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!