小鳥初學Shell編程(二)編寫簡單的Shell腳本

Shell腳本

編寫Python、PHP腳本通常需要掌握語言的函數(shù),那么Shell腳本則不需要,只需要掌握Linux命令就可以編寫Shell腳本,因為Shell腳本就是由多個Linux命令組成,通過將多個Linux命令組合保存成一個腳本文件,可直接給其他人使用。


組合命令

進入一個目錄,查看目錄的文件,這個過程分別需要執(zhí)行兩條命令,分別是cdls

分開執(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í)行運行了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容