Shell 腳本(shell script),是一種爲 shell 編寫的腳本程序。php
業界所說的 shell 一般都是指 shell 腳本,但讀者朋友要知道,shell 和 shell script 是兩個不一樣的概念。java
因爲習慣的緣由,簡潔起見,本文出現的 "shell編程" 都是指 shell 腳本編程,不是指開發 shell 自身。linux
Shell 編程跟 java、php 編程同樣,只要有一個能編寫代碼的文本編輯器和一個能解釋執行的腳本解釋器就能夠了。shell
Linux 的 Shell 種類衆多,常見的有:編程
在通常狀況下,人們並不區分 Bourne Shell 和 Bourne Again Shell,因此,像 #!/bin/sh,它一樣也能夠改成 #!/bin/bash。vim
#! 告訴系統其後路徑所指定的程序便是解釋此腳本文件的 Shell 程序。bash
打開文本編輯器(可使用 vi/vim 命令來建立文件),新建一個文件 test.sh,擴展名爲 sh(sh表明shell),擴展名並不影響腳本執行,見名知意就好,若是你用 php 寫 shell 腳本,擴展名就用 php 好了。編輯器
輸入一些代碼,第一行通常是這樣:spa
#!/bin/bash echo "Hello World !"
#! 是一個約定的標記,它告訴系統這個腳本須要什麼解釋器來執行,即便用哪種 Shell。code
echo 命令用於向窗口輸出文本。
一、做爲可執行程序
將上面的代碼保存爲 test.sh,並 cd 到相應目錄:(使用vi + 文件名或touch +文件名)
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 告訴系統說,就在當前目錄找。
二、做爲解釋器參數
這種運行方式是,直接運行解釋器,其參數就是 shell 腳本的文件名,如:
/bin/sh test.sh /bin/php test.php
這種方式運行的腳本,不須要在第一行指定解釋器信息,寫了也沒用。