Shell腳本
編寫Python、PHP腳本通常需要掌握語言的函數(shù),那么Shell腳本則不需要,只需要掌握Linux命令就可以編寫Shell腳本,因為Shell腳本就是由多個Linux命令組成,通過將多個Linux命令組合保存成一個腳本文件,可直接給其他人使用。
組合命令
進入一個目錄,查看目錄的文件,這個過程分別需要執(zhí)行兩條命令,分別是cd 和ls。
分開執(zhí)行兩個命令的形式如下:
[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]#
我們可以用分號;,來將兩個命令組合在起來,順序執(zhí)行,那么一起執(zhí)行的形式如下:
[root@lincoding usr]# cd /usr/ ; ls
bin etc games include lib lib64 libexec local sbin share src tmp
[root@lincoding usr]#
編寫Shell腳本流程
那么如果這兩個命令經(jīng)常使用或者提供給其他人使用,我們可以把這兩個命令用Shell腳本文件保存起來。
01 建立Shell腳本文件
使用bash的Shell通常以.sh后綴
[root@lincoding home]# touch test.sh
02 編寫Shell腳本
通過vi命令編寫test.sh腳本,內容如下:
cd /usr/
ls
需要注意的是Shell腳本里每條語句后面不用加分號;,每條命令采用換行的方式,執(zhí)行Shell腳本的時候就會順序執(zhí)行。
03 給予Shell腳本執(zhí)行權限
因為建立文件的時候,默認是沒有執(zhí)行權限的,我們需要給予腳本執(zhí)行權限,腳本才可以運行
[root@lincoding home]# chmod u+x test.sh
查看腳本權限
[root@lincoding home]# ls -l test.sh
-rwxr--r--. 1 root root 13 Sep 12 09:10 test.sh
04 執(zhí)行Shell腳本
用bash執(zhí)行Shell腳本,執(zhí)行的結果就和我們在外邊單行組合命令執(zhí)行的結果是一樣的
[root@lincoding home]# bash test.sh
bin etc games include lib lib64 libexec local sbin share src tmp
聲明Shell解釋器
那么這里還要考慮一下其他的問題,假設要把這個Shell腳本在與不同的系統(tǒng)下運行的時候就會有問題,如果系統(tǒng)默認的Shell不是bash,執(zhí)行這個Shell腳本可能會失敗,因為可能會有bash的一些Shell特性在里邊。
那么我們可以在Shell腳本文件的第一行聲明它使用的是哪個Shell,書寫的格式如下:
#!/bin/bash
這樣寫的好處是,執(zhí)行Shell腳本的時候,會自動告訴系統(tǒng)用bash解釋器的Shell來執(zhí)行腳本。
我們將剛才的test.sh腳本修改后如下:
#!/bin/bash
cd /usr/
ls
那么聲明使用哪個Shell解釋器后,我們執(zhí)行腳本的方式就可以變的很簡單了
[root@lincoding home]# ./test.sh
bin etc games include lib lib64 libexec local sbin share src tmp
小結
我們編寫Shell腳本時,第一行要以#!/bin/bash聲明Shell解釋器,編寫完后要給予Shell執(zhí)行權限,接著就可以執(zhí)行運行了。