簡單而有效的Linux Shell腳本示例
從歷史上看,shell一直是類Unix系統的原生命令行解釋器。多年來,它已被證明是Unix的主要功能之一,它本身已發展成為一個全新的話題。
Linux提供了具有強大功能的各種功能強大的Shell,包括Bash,Zsh,Tcsh和Ksh。這些Shell程序最令人驚奇的功能之一就是它們的可編程性。創建簡單而有效的Linux Shell腳本來處理日常工作非常容易。此外,對這一主題的一點了解將使您立即成為Linux的高級用戶。請和我們一起對Unix Shell腳本進行詳細介紹。
Linux Shell腳本示例
在Linux上完成的大多數shell腳本都涉及bash shell。具有指定選擇的高級用戶經常使用其他Shell,例如Zsh和Ksh。由于示例的廣泛使用和巨大的可用性,我們在示例中將大部分堅持使用Linux bash腳本。我們的編輯器還嘗試概述一些處理bash以外的shell的shell腳本示例。您會發現不同的Shell腳本之間相當熟悉。
Linux Bash腳本
Bash又名Bourne Again Shell,是當今大多數Linux發行版中的默認命令行解釋器。它是對早期Bourne Shell的升級,學習bash shell腳本將使您更快地了解其他shell腳本。因此,請自己嘗試這些簡單的示例以獲得第一手經驗。
1. Hello World
程序員經常通過學習hello world程序來學習新語言。這是一個簡單的程序,可將字符串“ Hello World”打印到標準輸出。使用vim或nano之類的編輯器創建文件linuxidc.sh并將以下幾行復制到其中。
- #!/bin/bash
- echo "Hello World,www.linuxidc.com"
保存并退出文件。您需要使用以下命令使該文件可執行。
- $ chmod a + x linuxidc.sh
您可以使用以下兩個命令中的任何一個來運行它。
- $ bash linuxidc.sh
- $ ./linuxidc.sh
它將打印出傳遞給腳本內部echo的字符串。
2. 使用echo進行打印
echo命令用于以bash格式打印信息。它類似于C函數'printf',并提供許多常用選項,包括轉義序列和重定向。
將以下幾行復制到一個名為linuxidc.com.sh的文件中,并使其可執行,如上所述。
- #!/bin/bash
- echo "Linux公社www.linuxidc.com"
- echo -n "不使用換行符打印文本"
- echo -e "\nUbuntu \t CentOS \t debian\n"
運行腳本,看看它做了什么。-e選項用于告訴echo傳遞給它的字符串包含特殊字符,需要擴展功能。
3. 使用注釋
注釋對于文檔很有用,并且是高質量代碼庫的要求。在處理關鍵邏輯的代碼中放入注釋是一種常見的做法。要注釋掉一行,只需在它前面使用#(散列)字符。檢查以下bash腳本示例。
- #!/bin/bash
- # 兩個值相加
- ((sum=17+19))
- #打印結果
- echo $sum
該腳本將輸出數字36。請在某些行之前使用#檢查如何使用注釋。但是第一行是一個例外。它被稱為shebang,讓系統知道運行此腳本時使用哪個解釋器。
4. 多行注釋
許多人使用多行注釋來記錄其Shell腳本。在下一個名為linuxidc.com.sh的腳本中檢查如何完成此操作。
- #!/bin/bash
- : '
- 該腳本計算
- 5的平方。
- '
- ((area=5*5))
- echo $area
注意多行注釋是如何放置在:' and '字符中的。
5. While循環
while循環結構用于多次運行某些指令。請查看以下名為while.sh的腳本,以更好地理解此概念。
- #!/bin/bash
- i=0
- while [ $i -le 2 ]
- do
- echo Number: $i
- ((i++))
- done
因此,while循環采用下面的形式。
- while [ condition ]
- do
- commands 1
- commands n
- done
方括號是必需的。
6. For循環
for循環是另一種廣泛使用的bash shell構造,它允許用戶有效地遍歷代碼。下面演示一個簡單的示例。
- #!/bin/bash
- for (( a=1; a<=5; a++ ))
- do
- echo -n "$a "
- done
- printf "\n"
將此代碼保存在名為inuxidc.com.sh的文件中,然后使用./linuxidc.com.sh運行它。不要忘記使其可執行。該程序應打印出數字1到15。
7、接收用戶的輸入
獲取用戶輸入對于在腳本中實現用戶交互至關重要。下面的Shell腳本示例將演示如何在Shell程序中接收用戶輸入。
- #!/bin/bash
- echo -n "輸入內容:"
- read something
- echo "您輸入了:$something"
因此,read結構后跟一個變量名,用于獲取用戶輸入。輸入存儲在這個變量中,可以使用$符號訪問它。
8. If語句
如果語句是Unix shell腳本中最常見的條件構造,則它們采用以下形式。
- if CONDITION
- then
- STATEMENTS
- fi
僅當條件為true時才執行語句。fi關鍵字用于標記if語句的結尾。下面是一個簡單的示例。
- #!/bin/bash
- echo -n "請輸入數字: "
- read num
- if [[ $num -gt 17 ]]
- then
- echo "數字大于17."
- fi
僅當通過輸入提供的數字大于17時,以上程序才會顯示輸出。該-gt表示大于; 類似地-lt小于;-le小于等于;和-Ge為大于等于。[[]]是必需的。
9. 使用If Else進行更多控制
將else構造與if結合使用,可以更好地控制腳本的邏輯。一個簡單的例子如下所示。
- #!/bin/bash
- read n
- if [ $n -lt 10 ];
- then
- echo "這是一個數字"
- else
- echo "這是一個兩位數的數字"
- fi
else部分需要放在if的操作部分和fi之間。