詳解shell指令碼的編寫規範

2022-09-26 13:21:42 字數 1121 閱讀 3436

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 指令碼版本 指令碼作者 指令碼時間 指令碼...