break和continue操作对于跳出当前操作月当前循环的区别
一、break和continue的应用于循环操作中,而break能够使当前语句退出,而continue则仅是退出当前操作并进入下次循环。
实例:
#!/bin/bash while true do echo "******************************" echo "** 请选择一下可操作选项 **" echo "** 1)复制 **" echo "** 2)删除 **" echo "** 3)备份 **" echo "** 4)退出 **" echo "******************************" read -p "逆选择的操作是:" sel case $sel in 1) echo "接下来的操作是复制" continue ;; 2) echo "接下来的操作是删除" continue ;; 3) echo "接下来的操作是备份" continue ;; 4) echo "接下来的操作是退出当前操作" break ;; *) echo "error.$sel不是可用操作,请输入[1|2|3|4]" esac done 运行结果 [[email protected] break]# sh bread.sh ****************************** ** 请选择一下可操作选项 ** ** 1)复制 ** ** 2)删除 ** ** 3)备份 ** ** 4)退出 ** ****************************** 逆选择的操作是:2 接下来的操作是删除
二、利用shift参数左移指令做乘法器
shift左移指令是指,参数序列在每次执行后向左移动以为,即$#的值减1,用于分别处理每个参数,移除去的参数将不能再重复使用。例如下列代码的功能是制作一个乘法器,具体代码如下。
#!/bin/bash if [ $# -le 0 ] ; then echo "err:NOT enough paremeter" exit 122 fi accu=1 while [ $# -gt 0 ] do ((accu=accu\*$1)) shift done echo $accu
[email protected] shift]# chmod u+x ./cfq.sh [[email protected] shift]# ./cfq.sh 2 3 4 24
特殊符号:
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
[email protected] 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
时间: 2024-10-13 16:51:14