簡單的Linux腳本程序

腳本的概念:

Bash程序不僅可以作爲用戶管理Linux系統的命令操作環境,同時也可以作爲一種優秀的腳本程序語言。凡是使用Shell編程的語言編寫的程序都可以稱爲Shell腳本,通俗一點說,只要將一些Linux命令按順序保存到一個文本文件中,並給予這個文件可執行權限,那麼這個文件就可以稱爲Shell腳本。當然,Shell腳本是爲了完成一定的管理任務才創建的,因此腳本文件中的各條命令並不是雜亂無章隨便放置的,這就需要用戶來進行組織和設計了。

編寫Shell腳本文件 (建立包含可執行語句的文件文件)

使用文本編輯器程序(如:vi)創建腳本文件,文件名中可以使用擴展名(如:“.sh”),也可以不使用擴展名,並沒有強制的要求。腳本中可能包括的內容如下:

       運行環境設置:通常位於文件的第一行,用戶指定使用那一個Shell程序進行解釋。設置時以“#!”開始,後面緊跟上指定的Shell程序的完成路徑,如“#!/bin/bash”。

       註釋行:在腳本文件中,除了以“#!”開頭的Shell環境設置行以外,其他以“#”符號開頭的內容將被視爲註釋信息,執行腳本時將予以忽略。編寫腳本程序時,添加必要的註釋語句是一個良好的習慣,這樣將大大增強腳本文件的易讀性,方便在不同時間,不同用戶間交流使用。

       可執行語句:可執行語句是Shell腳本程序中最重要的組成部分,在命令行操作界面中可以執行的命令都可以寫入到腳本當中,程序運行時默認情況下將會按照順序依次解釋執行。除此以外,還可以添加一些程序結構語句,用戶靈活控制執行過程,提高程序執行效率。

eg:使用vi編輯器編寫一個簡單的Shell腳本文件test.sh,用於報告當前系統中“/boot”目錄所佔用的空間大小,並列出其中的內核文件的屬性信息。

#!/bin/bash
#To show the size of /boot and the mode of kernel files.
echo "size of /boot:"
du -sh /boot
echo "the mode of kernel files:"
ls -lh /boot/vmlinuz-*

輸出:

m@virtual-machine:~$ bash test.sh
size of /boot:
26M	/boot
the mode of kernel files:
-rw-r--r-- 1 root root 5.0M  2月 14  2013 /boot/vmlinuz-3.5.0-23-generic

執行Shell腳本有多種方式:

>直接執行帶"x"權限的腳本文件

爲腳本文件設置了可執行屬性後,在Shell命令行中可以直接通過腳本文件的路徑執行腳本程序,這也是最常用的一種方式,執行時需要在文件名之前加入“./”路徑,明確執行需要執行當前目錄下的腳本文件,這種方法也是出於對系統安全性的考慮。

>使用Shell解釋器程序執行腳本

這種方式可以將腳本文件作爲指定Shell解釋器程序(如:bash、sh等)的參數,由解釋器程序負責讀取腳本文件中的內容並執行,因此並不需要腳本文件具有可執行屬性。此方法通常只在腳本的調試階段使用。

>:使用“.”命令執行腳本

使用Shell解釋器程序(如:bash)執行指定腳本文件時,是在當前Shell中啓動一個子Shell來運行腳本程序,因此腳本程序中定義的環境變量只能在子Shell環境中使用,而無法在用戶當前的Shell環境中使用。

使用Bash的內部命令“.”(或使用source命令,其作用相同)加載指定的腳本文件並執行時,系統將不會開啓新的Shell環境。使用這種方式時,腳本文件作爲“.”命令的參數,因此同樣不要求腳本文件具備“x”權限。例如,在修改完“/etc/profile”文件以後,可以執行“. /etc/profile”命令,使得在文件中新設置的變量立即生效,而無需重新登錄。


發佈了49 篇原創文章 · 獲贊 13 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章