Shell 腳本開發的基本規範及習慣

来源:https://www.cnblogs.com/miss103/archive/2020/07/08/13267142.html
-Advertisement-
Play Games

1. Shell 腳本的第一行時指定腳本解釋器。 #!/bin/bash 或者 #!/bin/sh 2. Shell 腳本的開頭會加版本,版權等信息 #!/bin/bash #Author: iskylite #Blog: http://www.cnblogs.com/iskylite/ #Date ...


1. Shell 腳本的第一行時指定腳本解釋器。

#!/bin/bash
或者 
#!/bin/sh

2. Shell 腳本的開頭會加版本,版權等信息

#!/bin/bash
#Author: iskylite
#Blog: http://www.cnblogs.com/iskylite/
#Date: 2017-10-30 19:11:02
#Description: This is a test shell script.
#Version: 1.1

3. 在Shell腳本中儘量不用中文(不限於註釋)

4. Shell腳本的命名應以.sh為擴展名

5. Shell腳本應存放在固定的路徑下

以下則是Shell腳本代碼書寫的良好習慣

1. 成對的符號應儘量一次性寫出來,然後退格在符號里增加內容,以防止遺漏。

2. 中括弧( [] )兩端至少要有1個空格,因此,鍵入中括弧時可留出空格[ ],然後在退格鍵入中間的內容

3. 對於流程式控制制語句,贏一次性將格式寫完,在添加內容。

一次性完成if語句的格式,應為:

if 條件內容
    then
        內容
fi

 一次性完成for迴圈語句的格式,應為:

for
do
    內容
done

4. 通過縮進讓代碼更易讀

5. 對於常規變數的字元串定義變數值應加雙引號,並且等號前後不能有空格,需要強引用的,則用單引號,如果是命令的引用,則用反引號

6. 腳本中的單引號,雙引號及反引號必須為英文狀態下的符號,其實所有的Linux字元及符號都應該是英文狀態下的符號,這點需要特別註意。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本人製作的這個 “簡易日誌 (SimpleLogger)” 包裡面包含的代碼邏輯,最開始也就是簡單地寫入文本,後來經過實際使用的演化,做了各種優化,添加了一些實用的特性,感覺用著還不錯。正所謂獨樂樂不如眾樂樂,於是將其打包上傳到微軟的包管理庫 NuGet 中,大家可以使用試試,相互交流。 ...
  • 前言 Http我們都已經耳熟能詳了,而關於Http學習的文章網上有很多,各個知識點的講解也可說是深入淺出。然而,學習過後,我們對Http還是一知半解。問題出在了哪? Http是一個客戶機與伺服器之間的通信的協議,真的想學習Http,就必須把客戶機和伺服器也學了,也就是說,必須立體的學習,不然我們永遠 ...
  • 一.背景說明: 之前分享過一個微服務開發框架, “享一個集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionless+Apollo+SkyWalking的微服務開發框架”,前兩天在Github上收到一個Issues,是想我 ...
  • 本次課程就正式進入開發部分。 首先我們先搭建項目框架,還是和之前漸進式風格保持一致,除必備組件外,儘量使用原生功能以方便大家理解。 開發工具:vs 2019 或以上 資料庫:SQL SERVER 2017 或以上 其他需要用到的我們在項目過程中再提。 一、新建 MVC項目 1、打開VS 2019,C ...
  • 調試腳本所花費的時間常常比編寫代碼還要多。所有編程語言都應該實現的一個特性就是在出現始料未及的情況時,能夠生成跟蹤信息。調試信息可以幫你弄清楚是什麼原因使得程式行為異常。 ...
  • 大家好,我是良許。 我們在平時工作的時候,經常要知道兩個文件之間,以及同個文件不同版本之間有何異同點。在 Windows 下,有 beyond compare 這個好用的工具,而在 Linux 下,也有很多很強大的工具,良許之前也寫過一篇文章介紹: Linux下9種優秀的代碼比對工具推薦 這些比對工 ...
  • [導讀] 前文大致總結了單片機串口的一些值得註意的要點,本文來梳理一下I2C匯流排的一些應用要點。這個題目有點大,對於I2C其實很多地方也沒講清楚,只為了與前文形成系列,如果大家有補充歡迎留言。說了些閑話,進入正題吧。 I2C之前世今生 \(I^2C\)(Inter-Integrated Circui ...
  • [導讀] 單片機開發串口是應用最為廣泛的通信介面,也是最為簡單的通信介面之一,但是其中的一些要點你是否明瞭呢?來看看本人對串口的一些總結,當然這個總結並不能面面俱到,只是將個人認為具有共性以及相對比較重要的點做了些梳理。 啥是串口? 首先這玩意兒分兩種: **通用非同步收發器(UART)**是用於非同步 ...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...