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