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