1. 程式人生 > >Shell入門(一)Shell指令碼、環境

Shell入門(一)Shell指令碼、環境

Shell 教程

Shell 是一個用C語言編寫的程式,它是使用者使用Linux的橋樑。Shell既是一種命令語言,又是一種程式設計語言。
Shell 是指一種應用程式,這個應用程式提供了一個介面,使用者通過這個介面訪問作業系統核心的服務。


Shell 指令碼

Shell 指令碼(shell script),是一種為shell編寫的指令碼程式。
業界所說的shell通常都是指shell指令碼,但讀者朋友要知道,shell和shell script是兩個不同的概念。
由於習慣的原因,簡潔起見,本文出現的”shell程式設計”都是指shell指令碼程式設計,不是指開發shell自身。
Shell 環境
Shell 程式設計跟java、php程式設計一樣,只要有一個能編寫程式碼的文字編輯器和一個能解釋執行的指令碼直譯器就可以了。
Linux的Shell種類眾多,常見的有:
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
……
本教程關注的是 Bash,也就是 Bourne Again Shell,由於易用和免費,Bash在日常工作中被廣泛使用。同時,Bash也是大多數Linux系統預設的Shell。
在一般情況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh

,它同樣也可以改為#!/bin/bash。

#!告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的Shell程式。

第一個shell指令碼

開啟文字編輯器(可以使用vi/vim命令來建立檔案),新建一個檔案test.sh,副檔名為sh(sh代表shell),副檔名並不影響指令碼執行,見名知意就好,如果你用php寫shell 指令碼,副檔名就用php好了。
輸入一些程式碼,第一行一般是這樣:
例項

#!/bin/bash
echo "Hello World !"

“#!” 是一個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種Shell。
echo命令用於向視窗輸出文字。

執行Shell指令碼有兩種方法:

1、作為可執行程式
將上面的程式碼儲存為test.sh,並cd到相應目錄:

chmod +x ./test.sh  #使指令碼具有執行許可權
./test.sh  #執行指令碼

注意,一定要寫成./test.sh,而不是test.sh,執行其它二進位制的程式也一樣,直接寫test.sh,linux系統會去PATH裡尋找有沒有叫test.sh的,而只有/bin, /sbin, /usr/bin,/usr/sbin等在PATH裡,你的當前目錄通常不在PATH裡,所以寫成test.sh是會找不到命令的,要用./test.sh告訴系統說,就在當前目錄找。
2、作為直譯器引數


這種執行方式是,直接執行直譯器,其引數就是shell指令碼的檔名,如:

/bin/sh test.sh
/bin/php test.php

這種方式執行的指令碼,不需要在第一行指定直譯器資訊,寫了也沒用。