當前位置:首頁 » 編程軟體 » bash腳本格式

bash腳本格式

發布時間: 2025-09-16 01:42:02

『壹』 不過時的技術——Bash腳本

Bash是一種不需要編譯,直接運行在Unix/Linux系統之上的腳本程序。它可以只包含一些簡單的命令,順序執行;也可以包含變數、控制語句等復雜的語法結構。Unix/Linux系統一直就是計算機世界的基石,Bash也是系統管理員、程序員必須掌握的技術之一,很多工作都可以藉助Bash自動執行。甚至Unix/Linux系統本身的很多功能,也是由Bash實現的。隨意打開 /etc/init.d/ 目錄下的某個文件,會發現就是一個Bash腳本,在Linux中,存在這大量這樣的腳本。

上面的腳本看似復雜,但從結構上可以簡單劃分為四部分:

1. 第一行 #! /bin/sh 叫 shebang ,標明這是一個Shell腳本。
2. 後面以 # 打頭的是注釋,說明該腳本的作用及用法。
3. 中間一大段是命令及控制語句,這里是真正做事的地方。
4. 最後 exit 0 ,退出腳本。
一個Linux命令執行後,都會有一個返回值, 0 表示命令執行成功, 1 表示命令執行過程中出錯,根據錯誤的不同,還可能返回 2 、 3 、 4 等值。在Linux中,變數 $? 記錄了上次命令的返回值。使用 echo $? 可以查看上次命令執行成功與否。Bash腳本的返回值默認為最後一條命令的返回值,很多時候這並不是我們想要的結果,因此常常在腳本最後使用 exit 0 顯式聲明返回值。

遵循上面的規則,我們可以編寫出自己的第一個Bash腳本: hello_world ,它的作用是在命令行列印一條消息。

切換到該腳本所在目錄, bash hello_world 運行該腳本,不出意外的話,恭喜你寫出了第一個Bash腳本。

通常人們不採用 bash hello_world 這種方式運行Bash腳本,而是賦給腳本可執行許可權,直接運行腳本:

有些同學會在運行腳本時碰到一個問題:既然已經在當前目錄下,為什麼直接運行 hello_world 會報命令找不到的錯誤?這是因為 當前目錄並不包含在$PATH 路徑下。Linux執行一個程序時,總是在系統環境變數$PATH里找對應的可執行程序,如果找不到,就會報命令找不到的錯誤。我們可以列印出$PATH變數 echo $PATH ,顯然,當前路徑並沒有包含在裡面。

為了方便,系統管理員通常把Bash腳本保存在 /usr/local/bin 和 $USER/bin 目錄下,因為這些目錄默認包含在系統環境變數$PATH里。我喜歡在當前用戶目錄下新建一個 bin 目錄,然後將該目錄加入$PATH,就可以直接在這里編寫Bash腳本了。

編寫Bash腳本時手一滑,可能會將腳本命名為 test ,此時執行腳本會得到意想不到的結果:

使用 which 和 type 命令檢查後發現,事實上執行了一條內置的Linux命令。此時就需要明確指定路徑來執行該腳本了: ./test 。最好是能在命名時注意沖突,隨著對Linux的熟悉,這種情況會慢慢好起來的。

最後為大家布置一道練習題:編寫一個Bash腳本,在當前目錄下生成一個日誌文件,隨意輸入一些內容,備份該文件,並將原始日誌文件內容清空。如果對Linux命令不熟悉,可能要查閱一些資料:如何輸出一些文本到文件、如何清空文件內容等。

讀者若對Bash腳本感興趣,可閱讀 Advanced Bash-Scripting Guide 深入學習,祝大家學習快樂!

熱點內容
安卓faceplay怎麼付款 發布:2025-09-16 03:32:34 瀏覽:581
安卓rom包里有什麼 發布:2025-09-16 03:07:57 瀏覽:350
sql2005無法連接 發布:2025-09-16 03:04:21 瀏覽:679
預埋件演算法 發布:2025-09-16 02:55:45 瀏覽:90
php取差集 發布:2025-09-16 02:46:58 瀏覽:971
ah腳本掃貨 發布:2025-09-16 02:44:53 瀏覽:70
加密相冊在哪裡找到 發布:2025-09-16 02:37:30 瀏覽:631
我的世界公益伺服器 發布:2025-09-16 02:26:18 瀏覽:832
我的世界對戰伺服器2021 發布:2025-09-16 02:13:05 瀏覽:742
蘋果店教編程 發布:2025-09-16 01:55:33 瀏覽:534