1. 程式人生 > >Shell Scripts - 條件語句,case語句,function功能

Shell Scripts - 條件語句,case語句,function功能

有變 段落 hello 一個 包括 body idt keyword track

改動之前的代碼

技術分享


技術分享


1.推斷 $1 是否為 hello,假設是的話。就顯示 "Hello, how are you ?";
2.假設沒有加不論什麽參數。就提示使用者必需要使用的參數下達法;
3.而假設增加的參數不是 hello ,就提醒使用者僅能使用 hello 為參數。


技術分享


技術分享


有興趣要偵測的是比較常見的 port 21, 22, 25及 80 時,那我怎樣透過 netstat 去偵測我的主機是否有開啟這四個基本的網絡服務端口呢?由於每一個服務的keyword都是接在冒號『 : 』後面。 所以能夠藉由擷取類似『 :80 』來偵測的。

技術分享


技術分享


技術分享


利用 case ..... esac 推斷

case  $變量名稱 in   <==keyword為 case ,還有變量前有錢字號
  "第一個變量內容")   <==每一個變量內容建議用雙引號括起來。keyword則為小括號 )
	程序段
	;;            <==每一個類別結尾使用兩個連續的分號來處理。
  "第二個變量內容")
	程序段
	;;
  *)                  <==最後一個變量內容都會用 * 來代表全部其它值
不包括第一個變量內容與第二個變量內容的其它程序執行段 exit 1 ;; esac <==終於的 case 結尾!『反過來寫』思考一下。

要註意的是,這個語法以 case (實際案例之意) 為開頭,結尾自然就是將 case 的英文反過來寫!就成為 esac 羅! 不會非常難背啦!另外,每個變量內容的程序段最後都須要兩個分號 (;;) 來代表該程序段落的結束,這挺重要的喔! 至於為何須要有 * 這個變量內容在最後呢?這是由於。假設使用者不是輸入變量內容一或二時, 我們能夠告知使用者相關的資訊啊!


技術分享


技術分享


一般來說,使用『 case $變量 in 』這個語法中。其中的那個『 $變量 』大致有兩種取得的方式:

直接下達式:比如上面提到的,利用『 script.sh variable 』 的方式來直接給予 $1 這個變量的內容,這也是在 /etc/init.d 文件夾下大多數程序的設計方式。



互動式:透過 read 這個命令來讓使用者輸入變量的內容。


技術分享


技術分享


技術分享


技術分享


技術分享


技術分享



Shell Scripts - 條件語句,case語句,function功能