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