51運維腳本規範
目錄
前言:
一、命名規範
1.1腳本命名
1.2變量命名
1.3參數命名
1.4函數命名規範
二、編寫規範
2.1.基本資訊
2.2代碼注釋規範
2.3空行
2.4縮進
2.5續行
2.6輸出
2.7 調用系統變量
2.8 腳本中使用指令
2.9 輸入與退出
三、調試
3.1 錯誤退出
3.2腳本文法檢查
3.3調試
本規範目的是保證運維成員編碼的統一。
本規範的核心規則就是腳本的命名規則。
此規範必要是可以打破。
1.1腳本命名
腳本的名字需與其功能保持一緻,讓人一看名字就大概知道是幹什麼用。
1.2變量命名
變量的命名應遵循某種規範,使用"_"作為單詞間的分隔符,單詞盡量使用全名
如:
1.3參數命名
參數命名原則全用小寫
如:
1.4函數命名規範
函數表示的是一個動作,是以它的結構應該是動詞+名詞,動詞必須小寫,後面的名稱首字母大寫,如getMaterialCode。函數命名盡量不要使用縮寫,而且它的名稱應該使人一目了然,能夠從名稱就知道這個函數的功能。當函數名稱不足以表達其功能時,應使用在函數頭部加上讓調用者足夠明白的注釋。
如下面例子:
2.1.基本資訊
(1)在每個腳本子產品的最上面,勿忘記添加開頭#!/bin/bash
(2)腳本編寫人(使用英文名或中文拼音縮寫)
(3)腳本建立時間、
(4)腳本修改時間、修改說明、輸入參數、輸出參數、
(5)腳本描述等。
如下面例子:
可通過.vimrc檔案編輯腳本時,自動在檔案頭加資訊
注釋務必做到準确簡潔,能夠充分表達代碼實作的功能。
例如:
空行是區分代碼塊與塊的間隔,在函數之間必須加上空行;而在函數内部,變量聲明塊和實作塊(實作塊指除變量聲明外的其他代碼)要使用空行來間隔,實作塊的内部,通過空行來辨別一個功能段。
必須嚴格執行縮進,變量聲明塊不縮進,實作塊必須保證全部縮進(不可能有實作塊是行首對齊的);對于基本的控制結構來說,必須要有縮進,如IF、DO、WITH、FOR、WHILE塊。
對于過長的語句來說,必須使用續行,續行位置要有明顯意義,例如,sql ="SELECT [code],[name] FROM [Person]"_&"WHERE [code] LIKE'001%'"。
對于使用比較頻繁的代碼塊來說,最好将其寫成函數,并盡量将功能複雜的大函數拆分成小函數。
非互動式腳本,背景運作的腳本,腳本不允許輸出内容到螢幕上,一律定向到/dev/null
例如:
腳本中需要調用系統變量時,需要在腳本中重新定義該變量
例如:
腳本中使用系統指令時,需在指令行正确執行,測試得出正确結果,再将指令行中執行正确的指令粘貼至腳本中
腳本需要從參數或者直接腳本中定義調用檔案時,需要判斷檔案是否存在
腳本非注釋開頭加上set -e,當腳本執行錯誤時,中斷腳本執行,防止腳本發生死循環
腳本非注釋開頭加上set -n,讀一遍腳本中的指令但不執行,驗證腳本是否能正常執行
腳本非注釋開頭加上set -x,判斷哪裡出錯。