完成這一章,你能做以下事情:
寫出簡單的shell程式
通過環境變數傳遞參數給shell程式
通過位置參數傳遞參數給shell程式
使用特殊shell變數,*和#
使用shift和read命令
1.1 shell程式設計概述
shell程式是一個包含UNIX命令的普通檔。
這個檔的許可許可權至少應該為可讀和可執行。
在shell提示符下鍵入檔案名就可執行shell程式。
shell程式可以通過三種方式接受資料:
-環境變數
-命令列參數
-使用者的輸入
shell是一個命令直譯器,它會解釋並執行命令提示符下輸入的命令。 但是,你可能想要多次執行一組命令,shell提供了一種功能,讓你將這組命令存放在一個檔中,然後你可以象unix系統提供的其他程式一樣執行這個檔,這個命令檔就叫做shell程式或者shell腳本。 當你運行這個檔,它會象你在命令列輸入這些命令一樣地執行這些命令。 為了讓shell能讀取並且執行你的shell程式,shell腳本的檔許可權必須被設置為可讀和可執行。 為了讓shell可以找到你的程式,你可以選擇輸入完全路徑名,或者將這個腳本的路徑放在於你的PATH環境變數指定的路徑清單中。 許多的使用者會在他們的HOME目錄下創建一個bin目錄來存放他們自己開發的script,然後將$HOME/bin加入到他們的PATH環境變數中。 你可以寫出非常複雜的shell腳本,因為shell腳本支援變數、命令列參數、互動式輸入、tests(判斷))、branches(分支),和loops(迴圈)等複雜的結構。
1.2 shell程式舉例
$ cat myprog
#this is the program myprog
date
ls –F
$ myprog
要創建一個shell程式,考慮進行以下步驟:
$ vi myprog 一個包含shell命令的程式。
#this is the program myprog
date
ls –F
$ chmod +x myprog 增加檔的執行模式
$ myprog
Thu Jul 11 11:10 EDT 1994
F1 f2 memo/ myprog*
首先使用一個HTTP://www.aliyun.com/zixun/aggregation/18444.html">文字編輯器創建一個shell程式myprog。 在程式執行之前,這個檔必須被賦予可執行檔許可權。 然後在命令提示符下輸入這個程式名,如上例所示,當myprog執行的時候,一個子shell會被創建。 這個子shell會從shell程式檔myprog讀取輸入而不是從命令列讀取輸入,這個shell中的每個命令的執行都會創建一個子shell。 一旦所有的命令都被執行,所有的子shell會中止,然後會返回到原始的父shell。
Shell程式中的注釋:
推薦在shell程式中提供注釋語句來注明程式的內容。 注釋由一個#符號開始,Shell不會去執行任何在#之後的語句。 #能夠出現在命令列的任何位置。
注意:你不可以給shell程式取名為test因為test是一個內部的shell命令。