執行Shell指令碼的方式
執行Shell指令碼的方式基本上有三種:
(1)輸入定向到Shell指令碼
這種方式是用輸入重定向方式讓Shell從給定檔案中讀入命令列並進行相應處理。其一般形式是:
$ bash < 指令碼名
例如:
$ bash
Shell從檔案ex1中讀取命令列,並執行它們。當Shell到達檔案末尾時就終止執行,並把控制返回到Shell命令狀態。此時,指令碼名後面不能帶引數。
(2)以指令碼名作為引數
其一般形式是:
$ bash 指令碼名 [引數]
例如:
$ bash ex2 /usr/meng /usr/zhang
其執行過程與上一種方式一樣,但這種方式的好處是能在指令碼名後面帶有引數,從而將引數值傳遞給程式中的命令,使一個Shell指令碼可以處理多種情況,就如同函式呼叫時可根據具體問題給定相應的實參。
如果以目前Shell(以·表示)執行一個Shell指令碼,則可以使用如下簡便形式:
$ · 指令碼名 [引數]
以Shell指令碼作為Shell的命令列引數,這種方式可用來進行程式除錯。
(3)將Shell指令碼的許可權設定為可執行,然後在提示符下直接執行它。
通常使用者是不能直接執行由正文編輯器(如vi)建立的Shell指令碼的,因為直接編輯生成的指令碼檔案沒有“執行”許可權。如果要把Shell指令碼直接當作命令執行,就需要利用命令chmod 將它置為有“執行”許可權。例如,
$ chmod a+x ex2
就把Shell指令碼ex2置為對所有使用者都有“執行”許可權。然後,在提示符後輸入指令碼名ex2就可直接執行該檔案。注意,此時該指令碼所在的目錄應被包含在命令搜尋路徑(PATH)中。例如:
$ ex2
Shell接收使用者輸入的命令(指令碼名),並進行分析。如果檔案被標記為可執行的,但不是被編譯過的程式,Shell就認為它是一個Shell指令碼。 Shell將讀取其中的內容,並加以解釋執行。所以,從使用者的觀點看,執行Shell指令碼的方式與執行一般的可執行檔案的方式相似。
因此,使用者開發的Shell指令碼可以駐留在命令搜尋路徑的目錄之下(通常是“/bin”、 “/usr/bin”等),像普通命令一樣使用。這樣,也就開發出自己的新命令。如果打算反覆使用編好的Shell指令碼,那麼採用這種方式就比較方便。
Shell指令碼經常被用來執行重複性的工作,例如,當進入系統時要檢視有無信件、列出誰在系統中、將工作目錄改到指定目錄並予以顯示、印出當前日期等。完成這些工作的命令是固定的。為了減少錄入時間,可把這些命令建立在一個Shell指令碼中,以後每次使用該檔名就可執行這些工作。
另外,完成某些固定工作時需輸入的命令很複雜,例如檔案系統的安裝(mount),要帶多個選項和引數。此時,利用Shell指令碼存放該命令,以後用時就很方便了。[@more@]
(1)輸入定向到Shell指令碼
這種方式是用輸入重定向方式讓Shell從給定檔案中讀入命令列並進行相應處理。其一般形式是:
$ bash < 指令碼名
例如:
$ bash
Shell從檔案ex1中讀取命令列,並執行它們。當Shell到達檔案末尾時就終止執行,並把控制返回到Shell命令狀態。此時,指令碼名後面不能帶引數。
(2)以指令碼名作為引數
其一般形式是:
$ bash 指令碼名 [引數]
例如:
$ bash ex2 /usr/meng /usr/zhang
其執行過程與上一種方式一樣,但這種方式的好處是能在指令碼名後面帶有引數,從而將引數值傳遞給程式中的命令,使一個Shell指令碼可以處理多種情況,就如同函式呼叫時可根據具體問題給定相應的實參。
如果以目前Shell(以·表示)執行一個Shell指令碼,則可以使用如下簡便形式:
$ · 指令碼名 [引數]
以Shell指令碼作為Shell的命令列引數,這種方式可用來進行程式除錯。
(3)將Shell指令碼的許可權設定為可執行,然後在提示符下直接執行它。
通常使用者是不能直接執行由正文編輯器(如vi)建立的Shell指令碼的,因為直接編輯生成的指令碼檔案沒有“執行”許可權。如果要把Shell指令碼直接當作命令執行,就需要利用命令chmod 將它置為有“執行”許可權。例如,
$ chmod a+x ex2
就把Shell指令碼ex2置為對所有使用者都有“執行”許可權。然後,在提示符後輸入指令碼名ex2就可直接執行該檔案。注意,此時該指令碼所在的目錄應被包含在命令搜尋路徑(PATH)中。例如:
$ ex2
Shell接收使用者輸入的命令(指令碼名),並進行分析。如果檔案被標記為可執行的,但不是被編譯過的程式,Shell就認為它是一個Shell指令碼。 Shell將讀取其中的內容,並加以解釋執行。所以,從使用者的觀點看,執行Shell指令碼的方式與執行一般的可執行檔案的方式相似。
因此,使用者開發的Shell指令碼可以駐留在命令搜尋路徑的目錄之下(通常是“/bin”、 “/usr/bin”等),像普通命令一樣使用。這樣,也就開發出自己的新命令。如果打算反覆使用編好的Shell指令碼,那麼採用這種方式就比較方便。
Shell指令碼經常被用來執行重複性的工作,例如,當進入系統時要檢視有無信件、列出誰在系統中、將工作目錄改到指定目錄並予以顯示、印出當前日期等。完成這些工作的命令是固定的。為了減少錄入時間,可把這些命令建立在一個Shell指令碼中,以後每次使用該檔名就可執行這些工作。
另外,完成某些固定工作時需輸入的命令很複雜,例如檔案系統的安裝(mount),要帶多個選項和引數。此時,利用Shell指令碼存放該命令,以後用時就很方便了。[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-910391/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行Shell指令碼的方式(轉)指令碼
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- 執行shell指令碼指令碼
- Linux中執行Shell指令碼的方式(三種方法)Linux指令碼
- crontab執行shell指令碼指令碼
- Shell指令碼入門:編寫格式與執行方式指令碼
- 指令碼執行方式指令碼
- Shell指令碼執行有哪些方式?linux系統學習指令碼Linux
- Mac 終端執行 shell 指令碼Mac指令碼
- shell指令碼的執行環境變數指令碼變數
- bash shell指令碼執行方法總結指令碼
- 使用CRONTAB呼叫shell指令碼執行EXP指令碼
- Linux下如何執行Shell指令碼Linux指令碼
- Linux Shell程式設計(3)——執行shell指令碼Linux程式設計指令碼
- Java執行groovy指令碼的兩種方式Java指令碼
- [Groovy]Groovy指令碼的5種執行方式指令碼
- 執行 shell 指令碼 \r 問題解決指令碼
- shell指令碼linux命令連續執行指令碼Linux
- appium ios java 指令碼如何用指令執行,例如 adb 那種方式執行指令碼APPiOSJava指令碼
- 使用Mac自定義快捷鍵執行shell指令碼Mac指令碼
- shell指令碼執行錯誤 $‘\r‘:command not found指令碼
- 從一個shell指令碼執行出錯聊起指令碼
- Shell多執行緒備份資料庫的指令碼執行緒資料庫指令碼
- 【shell 指令碼】兩種登入方式指令碼
- Linux Source命令及指令碼的執行方式解析Linux指令碼
- 如何讓shell指令碼變成可執行檔案指令碼
- 通過shell指令碼監控sql執行頻率指令碼SQL
- 透過shell指令碼監控sql執行頻率指令碼SQL
- 詳解shell中source、sh、bash、./執行指令碼的區別指令碼
- 執行Shell指令碼的4種方法及區別詳解指令碼
- bash shell指令碼訪問PostgreSQL的三種方式指令碼SQL
- Linux Bash Shell學習(七):shell程式設計基礎——執行Shell指令碼、functionLinux程式設計指令碼Function
- shell指令碼命令 執行python檔案&python命令列執行python程式碼指令碼Python命令列
- shell指令碼放到crontab裡就執行不成功的問題指令碼
- Linux Shell獲取正在執行指令碼的絕對路徑Linux指令碼
- 透過shell指令碼來得到不穩定的執行計劃指令碼
- 通過shell指令碼來得到不穩定的執行計劃指令碼
- sqlplus動態生成linux shell指令碼並執行SQLLinux指令碼