編寫Python、PHP腳本一般須要掌握語言的函數,那麼Shell腳本則不須要,只須要掌握Linux命令就能夠編寫Shell腳本,由於Shell腳本就是由多個Linux命令組成,經過將多個Linux命令組合保存成一個腳本文件,可直接給其餘人使用。bash
進入一個目錄,查看目錄的文件,這個過程分別須要執行兩條命令,分別是cd
和ls
。函數
分開執行兩個命令的形式以下:code
[root@lincoding usr]# cd /usr/ [root@lincoding usr]# [root@lincoding usr]# ls bin etc games include lib lib64 libexec local sbin share src tmp [root@lincoding usr]#
咱們能夠用分號;
,來將兩個命令組合在起來,順序執行,那麼一塊兒執行的形式以下:test
[root@lincoding usr]# cd /usr/ ; ls bin etc games include lib lib64 libexec local sbin share src tmp [root@lincoding usr]#
那麼若是這兩個命令常用或者提供給其餘人使用,咱們能夠把這兩個命令用Shell腳本文件保存起來。coding
使用bash的Shell一般以.sh
後綴權限
[root@lincoding home]# touch test.sh
經過vi
命令編寫test.sh
腳本,內容以下:腳本
cd /usr/ ls
須要注意的是Shell腳本里每條語句後面不用加分號;
,每條命令採用換行的方式,執行Shell腳本的時候就會順序執行。touch
由於創建文件的時候,默認是沒有執行權限的,咱們須要給予腳本執行權限,腳本才能夠運行語言
[root@lincoding home]# chmod u+x test.sh
查看腳本權限di
[root@lincoding home]# ls -l test.sh -rwxr--r--. 1 root root 13 Sep 12 09:10 test.sh
用bash執行Shell腳本,執行的結果就和咱們在外邊單行組合命令執行的結果是同樣的
[root@lincoding home]# bash test.sh bin etc games include lib lib64 libexec local sbin share src tmp
那麼這裏還要考慮一下其餘的問題,假設要把這個Shell腳本在與不一樣的系統下運行的時候就會有問題,若是系統默認的Shell不是bash,執行這個Shell腳本可能會失敗,由於可能會有bash的一些Shell特性在裏邊。
那麼咱們能夠在Shell腳本文件的第一行聲明它使用的是哪一個Shell,書寫的格式以下:
#!/bin/bash
這樣寫的好處是,執行Shell腳本的時候,會自動告訴系統用bash
解釋器的Shell來執行腳本。
咱們將剛纔的test.sh腳本修改後以下:
#!/bin/bash cd /usr/ ls
那麼聲明使用哪一個Shell解釋器後,咱們執行腳本的方式就能夠變的很簡單了
[root@lincoding home]# ./test.sh bin etc games include lib lib64 libexec local sbin share src tmp
咱們編寫Shell腳本時,第一行要以#!/bin/bash
聲明Shell解釋器,編寫完後要給予Shell執行權限,接着就能夠執行運行了。