<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Linux Shell 腳本編程最佳實踐

          共 2038字,需瀏覽 5分鐘

           ·

          2022-01-18 18:17

          前言

          與其它的編碼規(guī)范一樣,這里所討論的不僅僅是編碼格式美不美觀的問題, 同時也討論一些約定及編碼標準。這份文檔主要側重于我們所普遍遵循的規(guī)則,對于那些不是明確強制要求的,我們盡量避免提供意見。

          為什么要有編碼規(guī)范

          編碼規(guī)范對于程序員而言尤為重要,有以下幾個原因:
          • 一個軟件的生命周期中,80%的花費在于維護
          • 幾乎沒有任何一個軟件,在其整個生命周期中,均由最初的開發(fā)人員來維護
          • 編碼規(guī)范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼
          • 如果你將源碼作為產(chǎn)品發(fā)布,就需要確任它是否被很好的打包并且清晰無誤,一如你已構建的其它任何產(chǎn)品
          • 編碼規(guī)范原則
          本文檔中的準則致力于最大限度達到以下原則:
          • 正確性
          • 可讀性
          • 可維護性
          • 可調(diào)試性
          • 一致性
          • 美觀
          盡管本文檔涵蓋了許多基礎知識,但應注意的是,沒有編碼規(guī)范可以為我們回答所有問題,開發(fā)人員始終需要再編寫完代碼后,對上述原則做出正確的判斷。

          代碼規(guī)范等級定義

          • 可選(Optional):用戶可參考,自行決定是否采用;

          • 推薦(Preferable):用戶理應采用,但如有特殊情況,可以不采用;

          • 必須(Mandatory):用戶必須采用(除非是少數(shù)非常特殊的情況,才能不采用);

          :未明確指明的則默認為必須(Mandatory)

          主要參考如下文檔:

          • Google Shell Style Guide

          • Bash Hackers Wiki

          源文件

          基礎

          使用場景

          僅建議Shell用作相對簡單的實用工具或者包裝腳本。因此單個shell腳本內(nèi)容不宜太過復雜。
          在選擇何時使用shell腳本時時應遵循以下原則:
          • 如主要用于調(diào)用其他工具且需處理的數(shù)據(jù)量較少,則shell是一個選擇
          • 如對性能十分敏感,則更推薦選擇其他語言,而非shell
          • 如需處理相對復雜的數(shù)據(jù)結構,則更推薦選擇其他語言,而非shell
          • 如腳本內(nèi)容逐漸增長且有可能出現(xiàn)繼續(xù)增長的趨勢,請盡早使用其他語言重寫

          文件名

          可執(zhí)行文件不建議有擴展名,庫文件必須使用.sh作為擴展名,且應是不可執(zhí)行的。
          執(zhí)行一個程序時,無需知道其編寫語言,且shell腳本并不要求具有擴展名,所以更傾向可執(zhí)行文件沒有擴展名。
          而庫文件知道其編寫語言十分重要,使用.sh作為特定語言后綴的擴展名,可以和其他語言編寫的庫文件加以區(qū)分。
          文件名要求全部小寫, 可以包含下劃線_或連字符-, 建議可執(zhí)行文件使用連字符,庫文件使用下劃線。

          正例:

          my-useful-binmy_useful_libraries.shmyusefullibraries.sh

          反例:

          My_Useful_BinmyUsefulLibraries.sh

          文件編碼

          源文件編碼格式為UTF-8。避免不同操作系統(tǒng)對文件換行處理的方式不同,一律使用LF

          單行長度

          每行最多不超過120個字符。每行代碼最大長度限制的根本原因是過長的行會導致閱讀障礙,使得縮進失效。
          除了以下兩種情況例外:
          • 導入模塊語句
          • 注釋中包含的URL
          如出現(xiàn)長度必須超過120個字符的字符串,應盡量使用here document或者嵌入的換行符等合適的方法使其變短。

          示例:

          # DO use 'here document'scat <I am an exceptionally longstring.END
          # Embedded newlines are ok toolong_string="I am an exceptionally long string."
          空白字符

          除了在行結束使用換行符,空格是源文件中唯一允許出現(xiàn)的空白字符。

          • 字符串中的非空格空白字符,使用轉(zhuǎn)義字符

          • 不允許行前使用tab縮進,如果使用tab縮進,必須設置1個tab為4個空格

          • 不應在行尾出現(xiàn)沒有意義的空白字符

          垃圾清理(推薦)

          對從來沒有用到的或者被注釋的方法、變量等要堅決從代碼中清理出去,避免過多垃圾造成干擾。

          結構

          使用bash

          Bash 是唯一被允許使用的可執(zhí)行腳本shell。

          可執(zhí)行文件必須以?#!/bin/bash開始。請使用set來設置shell的選項,使得用bash

          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                    <th id="afajh"><progress id="afajh"></progress></th>
                    免费操 | 亚洲色无码A片中文字幕 | 丝袜美逼在线视频播放 | 超碰97资源 | 热99视频在线观看 |