Linux Shell 腳本編程最佳實踐


前言
為什么要有編碼規(guī)范
一個軟件的生命周期中,80%的花費在于維護 幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發(fā)人員來維護 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼 如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且清晰無誤,一如你已構建的其它任何產(chǎn)品 編碼規(guī)范原則
正確性 可讀性 可維護性 可調(diào)試性 一致性 美觀
代碼規(guī)范等級定義
可選(Optional):用戶可參考,自行決定是否采用;
推薦(Preferable):用戶理應采用,但如有特殊情況,可以不采用;
必須(Mandatory):用戶必須采用(除非是少數(shù)非常特殊的情況,才能不采用);
注:未明確指明的則默認為必須(Mandatory)
主要參考如下文檔:
Google Shell Style Guide
Bash Hackers Wiki
源文件
基礎
使用場景
如主要用于調(diào)用其他工具且需處理的數(shù)據(jù)量較少,則shell是一個選擇 如對性能十分敏感,則更推薦選擇其他語言,而非shell 如需處理相對復雜的數(shù)據(jù)結構,則更推薦選擇其他語言,而非shell 如腳本內(nèi)容逐漸增長且有可能出現(xiàn)繼續(xù)增長的趨勢,請盡早使用其他語言重寫
文件名
.sh作為擴展名,且應是不可執(zhí)行的。.sh作為特定語言后綴的擴展名,可以和其他語言編寫的庫文件加以區(qū)分。_或連字符-, 建議可執(zhí)行文件使用連字符,庫文件使用下劃線。正例:
my-useful-binmy_useful_libraries.shmyusefullibraries.sh
反例:
My_Useful_BinmyUsefulLibraries.sh
文件編碼
LF。單行長度
導入模塊語句 注釋中包含的URL
示例:
# DO use 'here document'scat <I am an exceptionally longstring.END# Embedded newlines are ok toolong_string="I am an exceptionallylong string."
空白字符
除了在行結束使用換行符,空格是源文件中唯一允許出現(xiàn)的空白字符。
字符串中的非空格空白字符,使用轉(zhuǎn)義字符
不允許行前使用tab縮進,如果使用tab縮進,必須設置1個tab為4個空格
不應在行尾出現(xiàn)沒有意義的空白字符
垃圾清理(推薦)
對從來沒有用到的或者被注釋的方法、變量等要堅決從代碼中清理出去,避免過多垃圾造成干擾。
結構
使用bash
Bash 是唯一被允許使用的可執(zhí)行腳本shell。
可執(zhí)行文件必須以?#!/bin/bash開始。請使用set來設置shell的選項,使得用bash
免费操
|
亚洲色无码A片中文字幕
|
丝袜美逼在线视频播放
|
超碰97资源
|
热99视频在线观看
|
