《linux程序设计4th》shell例程执行流程

请问下下面shell脚本的流程:
1、函数内为何要用$*不用$1?
2、函数内的while true是怎么跳出的呢?
3、case的前两个return,返回的是函数返回值吗?
4、请解释下执行的流程,没看懂。。。

 10 yes_or_no(){
 11     echo "Is your name $*"
 12     while true
 13     do
 14         echo  "Enter yes or no"
 15         read x
 16         case $x in
 17             y | yes)    return 0;;
 18             n | no )    return 1;;
 19             *      )    echo "Enter yes or no"
 20         esac
 21     done
 22 }
 23 
 24 echo "Original parameters are $*"
 25 if yes_or_no "$1"
 26 then
 27     echo "Hi $1, nice name"
 28 else
 29     echo "Never mind"
 30 fi
 31 exit 0
阅读 2.3k
1 个回答

1.函数里面的是传给函数的参数,即调用函数时后面跟的那一堆东西,对于这个脚本,函数里面的$* 即为25行的$1
2.只有输入yes/no 的时候才会返回,才跳出函数
3.是函数执行完后的状态值,0表示正确,非0表示错误。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进