自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單而有效的Linux Shell腳本示例

系統(tǒng) Linux
創(chuàng)建簡(jiǎn)單而有效的Linux Shell腳本來(lái)處理日常工作非常容易。此外,對(duì)這一主題的一點(diǎn)了解將使您立即成為L(zhǎng)inux的高級(jí)用戶。請(qǐng)和我們一起對(duì)Unix Shell腳本進(jìn)行詳細(xì)介紹。

從歷史上看,shell一直是類Unix系統(tǒng)的原生命令行解釋器。多年來(lái),它已被證明是Unix的主要功能之一,它本身已發(fā)展成為一個(gè)全新的話題。

Linux提供了具有強(qiáng)大功能的各種功能強(qiáng)大的Shell,包括Bash,Zsh,Tcsh和Ksh。這些Shell程序最令人驚奇的功能之一就是它們的可編程性。創(chuàng)建簡(jiǎn)單而有效的Linux Shell腳本來(lái)處理日常工作非常容易。此外,對(duì)這一主題的一點(diǎn)了解將使您立即成為L(zhǎng)inux的高級(jí)用戶。請(qǐng)和我們一起對(duì)Unix Shell腳本進(jìn)行詳細(xì)介紹。

Linux Shell腳本示例

在Linux上完成的大多數(shù)shell腳本都涉及bash shell。具有指定選擇的高級(jí)用戶經(jīng)常使用其他Shell,例如Zsh和Ksh。由于示例的廣泛使用和巨大的可用性,我們?cè)谑纠袑⒋蟛糠謭?jiān)持使用Linux bash腳本。我們的編輯器還嘗試概述一些處理bash以外的shell的shell腳本示例。您會(huì)發(fā)現(xiàn)不同的Shell腳本之間相當(dāng)熟悉。

Linux Bash腳本

Bash又名Bourne Again Shell,是當(dāng)今大多數(shù)Linux發(fā)行版中的默認(rèn)命令行解釋器。它是對(duì)早期Bourne Shell的升級(jí),學(xué)習(xí)bash shell腳本將使您更快地了解其他shell腳本。因此,請(qǐng)自己嘗試這些簡(jiǎn)單的示例以獲得第一手經(jīng)驗(yàn)。

1. Hello World

程序員經(jīng)常通過(guò)學(xué)習(xí)hello world程序來(lái)學(xué)習(xí)新語(yǔ)言。這是一個(gè)簡(jiǎn)單的程序,可將字符串“ Hello World”打印到標(biāo)準(zhǔn)輸出。使用vim或nano之類的編輯器創(chuàng)建文件linuxidc.sh并將以下幾行復(fù)制到其中。

  1. #!/bin/bash 
  2. echo "Hello World,www.linuxidc.com" 

保存并退出文件。您需要使用以下命令使該文件可執(zhí)行。

  1. $ chmod a + x linuxidc.sh 

您可以使用以下兩個(gè)命令中的任何一個(gè)來(lái)運(yùn)行它。

  1. $ bash linuxidc.sh 
  2. $ ./linuxidc.sh 

它將打印出傳遞給腳本內(nèi)部echo的字符串。

2. 使用echo進(jìn)行打印

echo命令用于以bash格式打印信息。它類似于C函數(shù)'printf',并提供許多常用選項(xiàng),包括轉(zhuǎn)義序列和重定向。

將以下幾行復(fù)制到一個(gè)名為linuxidc.com.sh的文件中,并使其可執(zhí)行,如上所述。

  1. #!/bin/bash 
  2. echo "Linux公社www.linuxidc.com" 
  3. echo -n "不使用換行符打印文本" 
  4. echo -e "\nUbuntu \t CentOS \t debian\n" 

運(yùn)行腳本,看看它做了什么。-e選項(xiàng)用于告訴echo傳遞給它的字符串包含特殊字符,需要擴(kuò)展功能。

3. 使用注釋

注釋對(duì)于文檔很有用,并且是高質(zhì)量代碼庫(kù)的要求。在處理關(guān)鍵邏輯的代碼中放入注釋是一種常見的做法。要注釋掉一行,只需在它前面使用#(散列)字符。檢查以下bash腳本示例。

  1. #!/bin/bash 
  2.  
  3. # 兩個(gè)值相加 
  4. ((sum=17+19)) 
  5.  
  6. #打印結(jié)果 
  7. echo $sum 

該腳本將輸出數(shù)字36。請(qǐng)?jiān)谀承┬兄笆褂?檢查如何使用注釋。但是第一行是一個(gè)例外。它被稱為shebang,讓系統(tǒng)知道運(yùn)行此腳本時(shí)使用哪個(gè)解釋器。

4. 多行注釋

許多人使用多行注釋來(lái)記錄其Shell腳本。在下一個(gè)名為linuxidc.com.sh的腳本中檢查如何完成此操作。

  1. #!/bin/bash 
  2. : ' 
  3. 該腳本計(jì)算 
  4. 5的平方。 
  5. ((area=5*5)) 
  6. echo $area 

注意多行注釋是如何放置在:' and '字符中的。

5. While循環(huán)

while循環(huán)結(jié)構(gòu)用于多次運(yùn)行某些指令。請(qǐng)查看以下名為while.sh的腳本,以更好地理解此概念。

  1. #!/bin/bash 
  2. i=0 
  3.  
  4. while [ $i -le 2 ] 
  5. do 
  6. echo Number: $i 
  7. ((i++)) 
  8. done 

因此,while循環(huán)采用下面的形式。

  1. while [ condition ] 
  2. do 
  3. commands 1 
  4. commands n 
  5. done 

方括號(hào)是必需的。

6. For循環(huán)

for循環(huán)是另一種廣泛使用的bash shell構(gòu)造,它允許用戶有效地遍歷代碼。下面演示一個(gè)簡(jiǎn)單的示例。

  1. #!/bin/bash 
  2.  
  3. for (( a=1; a<=5; a++ )) 
  4. do 
  5. echo -n "$a " 
  6. done 
  7.  
  8. printf "\n" 

將此代碼保存在名為inuxidc.com.sh的文件中,然后使用./linuxidc.com.sh運(yùn)行它。不要忘記使其可執(zhí)行。該程序應(yīng)打印出數(shù)字1到15。

7、接收用戶的輸入

獲取用戶輸入對(duì)于在腳本中實(shí)現(xiàn)用戶交互至關(guān)重要。下面的Shell腳本示例將演示如何在Shell程序中接收用戶輸入。

  1. #!/bin/bash 
  2.  
  3. echo -n "輸入內(nèi)容:" 
  4. read something 
  5.  
  6. echo "您輸入了:$something" 

因此,read結(jié)構(gòu)后跟一個(gè)變量名,用于獲取用戶輸入。輸入存儲(chǔ)在這個(gè)變量中,可以使用$符號(hào)訪問(wèn)它。

8. If語(yǔ)句

如果語(yǔ)句是Unix shell腳本中最常見的條件構(gòu)造,則它們采用以下形式。

  1. if CONDITION  
  2. then 
  3. STATEMENTS 
  4. fi 

僅當(dāng)條件為true時(shí)才執(zhí)行語(yǔ)句。fi關(guān)鍵字用于標(biāo)記if語(yǔ)句的結(jié)尾。下面是一個(gè)簡(jiǎn)單的示例。

  1. #!/bin/bash 
  2.  
  3. echo -n "請(qǐng)輸入數(shù)字: " 
  4. read num 
  5.  
  6. if [[ $num -gt 17 ]] 
  7. then 
  8. echo "數(shù)字大于17." 
  9. fi 

僅當(dāng)通過(guò)輸入提供的數(shù)字大于17時(shí),以上程序才會(huì)顯示輸出。該-gt表示大于; 類似地-lt小于;-le小于等于;和-Ge為大于等于。[[]]是必需的。

9. 使用If Else進(jìn)行更多控制

將else構(gòu)造與if結(jié)合使用,可以更好地控制腳本的邏輯。一個(gè)簡(jiǎn)單的例子如下所示。

  1. #!/bin/bash 
  2.  
  3. read n 
  4. if [ $n -lt 10 ]; 
  5. then 
  6. echo "這是一個(gè)數(shù)字" 
  7. else 
  8. echo "這是一個(gè)兩位數(shù)的數(shù)字" 
  9. fi 

else部分需要放在if的操作部分和fi之間。

 

責(zé)任編輯:趙寧寧 來(lái)源: Linux公社
相關(guān)推薦

2020-04-22 12:46:30

LinuxShell腳本

2023-10-04 18:23:02

插入排序算法

2024-11-27 09:19:25

2021-05-06 15:18:09

Shell腳本Linux

2022-09-13 23:43:00

Python機(jī)器學(xué)習(xí)腳本

2017-08-11 17:20:07

LinuxShell

2010-03-23 17:06:01

2017-07-25 11:22:06

2024-01-30 09:00:28

框架BMRL模型

2023-05-20 17:45:25

LinuxShell

2022-08-30 08:52:04

shell腳本Linux

2014-08-13 14:48:01

LinuxShell腳本

2015-06-24 10:13:38

LinuxLinux終端彩蛋

2019-08-12 07:45:44

Linux腳本shell

2021-02-03 20:10:29

Linux信號(hào)量shell

2020-09-23 06:00:04

ShellLinux郵件監(jiān)控

2018-04-04 08:59:22

LinuxUNIXShell

2016-12-16 09:23:29

LinuxShell腳本

2023-07-31 08:45:10

Shell腳本

2010-06-23 15:55:36

Linux Bash
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)