shell程式設計規範

2021-09-28 15:35:35 字數 1409 閱讀 2786

5. 命名規範

6. 函式

7. 引用模組或者檔案

8. 指令碼日誌

9. 配置檔案

10. 其他

shell指令碼目前我沒有找到統一的規範,只能根據自己日常的習慣和讀別人shell指令碼的時候,踩過的坑,在這裡總結一些。

shell指令碼一般選擇bash為直譯器,指令碼開頭應為

#!/bin/bash

或者#!/bin/sh

在指令碼開頭加注釋,說明指令碼作者、編寫時間、指令碼功能,最好可以加上指令碼的版本號,shell指令碼注釋使用#,注釋語句和#號中間有乙個空格

#!/bin/bash

# 指令碼版本

# 指令碼作者

# 指令碼時間

# 指令碼功能

通過set命令新增指令碼除錯,如果報錯,指令碼直接退出,不繼續執行,對於管道錯誤也直接退出

#!/bin/bash

# 指令碼版本

# 指令碼作者

# 指令碼時間

# 指令碼功能

set -e

set -o pipfail

變數名稱要統一規範,shell變數建議使用全部大寫,意思清晰明了,如果多個字元,可以採用下劃線進行切割。比如system_log_file,對於變數引用可以才用直接$,如果有下劃線分割槽的變數,建議使用$

4.1 全域性變數和區域性變數

全域性變數可以採用前面時候的方式進行定義,如果是函式中的區域性變數,建議使用local進行變數宣告,這個防止全域性變數和區域性變數混淆,區域性變數可以採用小寫,區分全域性和區域性變數。

function testfunc(

)

如果存在變數合併的情況,比如目錄和檔名合併,這樣可以重新賦值個乙個新的變數,這樣方便之後呼叫

5.1 函式命名

函式命名一般單詞的首字母大寫,比如getinformation,意思清晰。

5.2 指令碼命名

指令碼命名,根據指令碼功能進行命名,字尾為.sh,如果在指令碼執行過程中產生一些臨時檔案,建議採用pid為字尾,如果指令碼執行完成,這個檔案沒有用途,則自動進行刪除

pid=$$

tmp_file=

"ip_list"

.$

引用指令碼或者模組檔案時候,新增注釋,簡要說明模組的主要功能和作用,使用.或者source

指令碼中建議新增日誌函式,這樣方便指令碼除錯,指令碼執行中各函式的輸出和狀態,日誌檔案中包括時間-日誌級別-函式,日誌建立log目錄,然後有常規log和錯誤log

配置檔案,在工程目錄下建立conf目錄,配置檔案以為.conf為字尾,配置欄位要風格統一,每個配置提供相關配置注釋

Shell程式設計規範與變數

shell的作用 編寫第乙個shell指令碼 重定向與管道操作 shell變數的作用 型別 自定義變數 特殊的shell變數 shell指令碼就是將要執行的命令按順序儲存到乙個文字檔案,並給該檔案可執行許可權,方便一次性執行的乙個程式檔案。主要是方便管理員進行設定或管理,可結合各種shell控制語句...

Shell程式設計規範與變數

shell指令碼的概念 將執行的命令按順序儲存到乙個文字檔案 給該檔案可執行許可權 可結合各種shell空值語句已完成更複雜的操作 shell指令碼應用場景 重複性操作 互動性任務 批量事務處理 服務執行狀態監控 定時任務執行 什麼是 shell指令碼 呢?簡單的說,只要將平時使用的各種linux命...

Shell程式設計規範與變數

四 重定向與管道操作 五 read使用語法 六 shell變數的作用,型別 七 shell變數賦值 八 linux中的運算 九 特殊的shell變數 什麼是shell指令碼?簡單來說,只要將平時使用的各種linux命令按順序儲存到乙個文字檔案中,然後新增可執行許可權,這個檔案就成了乙個shell指令...