1.1 Shell編程概述
shell程序是一個包含UNIX命令的普通文件,這個文件的許可權限至少應該為可讀和可執行。在shell提示符下鍵入文件名就可執行shell程序,數據可以通過三種方式傳送到shell程序
??-環境變量
??-命令行參數
??-用戶的輸入
shell是一個命令解釋器,它會解釋你在命令提示符下輸入的命令。但是,你可能有一組想要多次執行的命令。shell提供了一種功能,讓你將這組命令存放在一個文件中,然后你可以象unix系統提供的其他程序一樣執行這個文件。這個命令文件就叫做shell程序或者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*
首先使用一個文本編輯器來創建一個shell程序myprog。在程序執行之前,這個文件必須被賦予可執行的權限。然后在命令提示符下輸入這個程序名。如上例所示,當myprog執行的時候,一個子shell會被創建。這個子shell會從shell程序文件myprog讀取輸入而不是從命令行。這個shell中的每個命令的執行都會創建一個子shell。一旦所有的命令都被執行,所有的子shell會中止,然后會返回到原始的父shell。
Shell程序中的注釋:
推薦在shell程序中提供注釋語句來注明程序的內容。注釋由一個#符號開始。Shell不會去執行任何在#之后的語句。#能夠出現在命令行的任何位置。
注意:你不可以給shell程序取名為test因為test是一個內部的shell命令。


