y | 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,就是异常结束
输入其它的,则进行下一轮循环,要求你重新输入
美元符加字符串是引用变量值,而美元符加数字表示命令行参数。
比如:
bash$ ./hello.sh build test脚本中$0的值就是。/hello.sh,$1的值是build,$2的值是test。
bash$ list.sh -sh --debug /home/user。脚本中$0的值就是list.sh,$1的值是-sh,$2的值是--debug,$3的值是/home/user。
$0 这个程式的执行名字。
$n 这个程式的第n个参数值,n=1..9。
$* 这个程式的所有参数,此选项参数可超过9个。
$# 这个程式的参数个数。
$$ 这个程式的PID(脚本运行的当前进程ID号)。
$! 执行上一个背景指令的PID(后台运行的最后一个进程的进程ID号)。
$? 执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)。
$- 显示shell使用的当前选项,与set命令功能相同。
$@ 跟$*类似,但是可以当作数组用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)