總結:linux學習之shell腳本編寫

一、Shell腳本編寫規範

1、一個規範的Shell腳本在第一行會指出由哪個程序(解釋器)來執行腳本中的內容,這一行內容在Linux bash的編程一般爲:#!/bin/bash  或 #!  /bin/sh

bash 與 sh 的區別:sh 爲 bash的軟連接,大多數情況下,腳本使用“#!/bin/bash”和“#!/bin/sh”是沒有區別的,但更規範的寫法是在腳本的開頭使用    #!/bin/bash 

2、在shell腳本中,跟在 # 後面的內容表示註釋,用來對腳本進行註釋說明,註釋部分不會被當做程序來執行,僅僅是給開發者和使用者看的,系統解釋器是看不到的,更不會執行。註釋可以自成一行,也可以跟在腳本命令的後面與命令在同一行。 註釋儘量不要使用中文,在腳本中最好也不要有中文。

3、Shell腳本的開頭會加版本、版權等信息,如:

# Date:16:29 2018-10-20 
# Author: Create by xiaoxie
# Description: This script function is …… 
# Version: 1.1

4、在shell腳本中儘量不用中文註釋,儘量用英文註釋,防止本機或切換系統環境後中文亂碼的困擾。

5、Shell腳本的命名應以.sh爲擴展名 例如:1.sh

6、成對的符號應儘量一次性寫出來,然後退格在符號內增加內容,以防止遺漏。這些成對的符號包括: {}、[]、‘’、“”  等

7、中括號[]兩端至少要有1個空格,因此,鍵入中括號時即留出空格[  ],然後在退格鍵入中間內容,並確保兩端都至少由一個空格。

8、對於流程控制語句,應一次性將格式寫完,再添加內容。 如:一次性完成for循環語句的格式


for
do
     內容
done

9、通過縮進讓代碼更易讀,如:

if 條件內容     
       then         
            內容 
fi

10、對於常規變量的字符串定義變量值應加雙引號,並且等號前後不能有空格,需要強引用的,則用單引號(‘’),如果是命令的引用,則用反引號(``)。

11、 腳本中的單引號、雙引號及反引號必須爲英文狀態下的符號。

二、Shell 中的變量

定義變量時變量名建議用大寫,如  A=xie     B=99

查看變量內容 echo $A  或  echo ${A}

  • 雙引號:允許通過$符號引用其他變量值
  • 單引號:禁止引用其他變量值,$視爲普通字符
  • 反撇號:命令替換,提取命令執行後的輸出結果 全局變量的定義方法 export 變量名

位置參數

位置參數我們寫腳本時候經常使用,比如腳本名稱後面緊接着是空格加變量,空格加變量這種方式,其實就是帶參數。

位置參數是一種在調用 Shell 程序的命令行中按照各自的位置決定的變量,是在程序名之後輸入的參數。 位置參數之間用空格分隔,Shell取第一個位置參數替換程序文件中的 $1,第二個替換 $2 , 依次類推。

注意:$0 是一個特殊變量,它的內容是當前這個shell程序的文件名,所以 $0 不是一個位置參數。

#! /bin/bash
echo $1
echo $(($2+$3))

當我執行時,我在文件名後加3個參數

預定義變量

預定義變量和環境變量相類似,也是在Shell一開始就定義的變量,不同的是,用戶只能根據shell的定義來使用這些變量,所有預定義變量都是由符號“$”和另一個符號組成。 常見的Shell預定義變量有以下幾種。

$# :位置參數的數量
$* :所有位置參數的內容
$? :命令執行後返回的狀態,0表示沒有錯誤,非0表示有錯誤
$$ :當前進程的進程號
$! :後臺運行的最後一個進程號
$0 :當前執行的進程名
假如我現在有一個 1.sh腳本文件,內容如下


#! /bin/bash
 
echo $1
echo ${2}+${3}
 
echo $#             #打印出位置參數的數量
echo $*             #打印出位置參數的內容
echo $?             #打印出命令執行後返回的狀態
echo $$             #打印出當前進程的進程號
echo $0             #打印出當前進程的進程名

當我執行時,我在文件名後加3個參數

、變量的算術運算

1、Shell中常見的算術運算符

2、Shell 中常見的算術運算命令

3、雙小括號 (())  數值運算命令的用法

雙小括號 (()) 的作用是進行數值運算與數值比較,它的效率很高,用法靈活,是Linux下常用的運算操作符。其操作方法如下:

四、if 條件判斷語句

###雙條件判斷#####
if 條件判斷
  then
      命令
elif 條件判斷
  then 
      命令
else
   命令
fi
 
##或
if 條件判斷;then
    命令
elif 條件判斷;then 
    命令
else
    命令
fi

if語句對於字符串的匹配

五、for循環語句

for  條件
do
   命令
done
 
##或
 
for  條件;do
   命令
done

六、while循環語句

while  條件
do
   命令
done

七、Break、Continue、exit 循環控制語句

break 、continue在條件語句及循環語句(for、while、if等)中用於控制程序走向;而exit則用於終止所有語句並退出當前腳本。

 

 

 

參考:

Linux中編寫Shell腳本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章