shell指令碼一般選擇bash作為直譯器,指令碼開頭應為
#!/bin/bash
或#!/bin/sh
在指令碼的開頭加注釋,說明指令碼作者、編寫時間、指令碼功能,最好可以加上指令碼的版本號。shell中指令碼注釋用#,注釋語句和#號之間有乙個空格
#!/bin/bash
# 指令碼版本
# 指令碼作者
# 指令碼時間
# 指令碼功能
通過set命令新增指令碼除錯,如果報錯,指令碼直接退出,不繼續執行,對於管道錯誤也可以直接退出
#!/bin/bash
# 指令碼版本
# 指令碼作者
# 指令碼時間
# 指令碼功能
set -e
set -o pipfail
變數命名要統一規範,shell變數建議使用全部大寫,意思清晰明了,如果是多個字元,可以採用下劃線進行切割,如apache_log_path,對於變數的引用可以直接使用$,如果有下劃線分割槽的變數,建議使用$。
全域性變數和區域性變數
全域性變數可以採用前面時候的定義方式,如果是函式中的區域性變數,建議使用local進行變數宣告。這個防止全域性變數和區域性變數混淆,區域性變數可以採用小寫,用來區分區域性變數和全域性變數。
function testfunc()
}如果存在變數合併的情況,比如目錄和檔名合併,這樣可以重新賦值成乙個新的變數,這樣方便以後呼叫。
函式命名
函式命名一般單詞的首字母大寫,比如getinformation,意思清晰。
wykqt***
指令碼命名
指令碼命名,根據指令碼功能進行命名,字尾為.sh,如果在指令碼執行過程中產生一些臨時檔案,建議採用pid為字尾,如果指令碼執行完成,這個檔案沒有用途,則自動進行刪除。
pid=$$
tmp_file="ip_list".$
引用指令碼或者模組檔案時,新增注釋,簡程式設計客棧要說明模組的主要功能和作用,使用.或者source
指令碼中建議新增日誌函式,這樣方便指令碼除錯,指令碼執行中各函式的輸出和狀態,日誌檔案中包括時間-日誌級別-函式,日誌建立log目錄,有常規的log和錯誤log。
在工程目錄下建立conf目錄,配置檔案以.conf為字尾,配置欄位要風格統一,每個配置提供相關配置注釋
其他
編寫shell指令碼的規範
目錄命名規範 函式引用模組或檔案 指令碼日誌 配置檔案 其他shell指令碼一般選擇bash作為直譯器,指令碼開頭應為 bin bash 或 bin sh在指令碼的開頭加注釋,說明指令碼作者 編寫時間 指令碼功能,最好可以加上指令碼的版本號。shell中指令碼注釋用 注釋語句和 號之間有乙個空格 b...
推薦 構建指令碼之shell編寫規範
1.usr bin env bash 指定指令碼使用的shell,比較靈活。2.set eux 當前shell的執行方式1 e 指令碼執行非0則退出 u 有不存在的變數則報錯 x 除錯指令碼,詳細的日誌輸出,免得去echo 3.set o pipefail 當前shell的執行方式2 表示管道中任何...
編寫shell指令碼的一些規範
shell指令碼一般選擇bash作為直譯器,指令碼開頭應為 bin bash 或 bin sh 在指令碼的開頭加注釋,說明指令碼作者 編寫時間 指令碼功能,最好可以加上指令碼的版本號。shell中指令碼注釋用 注釋語句和 號之間有乙個空格 bin bash 指令碼版本 指令碼作者 指令碼時間 指令碼...