shell腳本高級編程

来源:http://www.cnblogs.com/lingyima/archive/2017/07/05/7121676.html
-Advertisement-
Play Games

0. shell腳本所需要的基礎知識 - vi/vim編輯器命令,包括vimrc設置; - Linux命令基礎 - 網路服務(nfs, rsync, inotify, lanmp, sersync, ssh key)批量分發管理 1. shell腳本介紹 1.1 什麼是shell 1.2 什麼she ...


0. shell腳本所需要的基礎知識

  - vi/vim編輯器命令,包括vimrc設置;

  - Linux命令基礎

  - 網路服務(nfs, rsync, inotify, lanmp, sersync, ssh key)批量分發管理

 

1. shell腳本介紹

  1.1 什麼是shell

  1.2 什麼shell script

  1.3 shell程式在運維工作的作用地位

  1.4 腳本語言的種類

    1.4.1 shell script 語言的種類

    1.4.2 其他常用script language  

  1.5 OS預設shell

  1.6 shell script 腳本的創建和執行

2. shell 變數由淺入深

  2.1 變數類型

  2.2 環境變數

  2.3 自定義環境變數(全局變數)

  2.4 顯示與取消環境變數

  2.5 局部變數

    2.5.1 定義本地變數

    2.5.2 特殊變數

    2.5.3 內部變數

    2.5.4 變數子串操作

    2.5.5 變數的數值計算

3. 條件測試

  3.1 測試語句

    3.1.1 條件測試語法

    3.1.2 文件測試操作符

    3.1.3 字元串測試操作符

    3.1.4 整數二元比較操作符

    3.1.5 邏輯操作符

  3.2 條件測試舉例

    3.2.1 文件測試舉例

    3.2.2 字元串測試舉例

    3.2.3 整數測試舉例

    3.2.4 test命令測試的用法

    3.2.5 邏輯操作符舉例

4. 分支與迴圈結構

  4.1 if statement  

    4.1.1 if 條件句語法說明

    4.1.2 if 條件句舉例

    4.1.3 多判斷條件 if 語句(&&, ||)

  4.2 case 機構條件句

    4.2.1 case條件句語法

    4.2.2 case結構條件句自寫範例

    4.2.3 case結構條件句系統腳本範例

    4.2.4 系統標桿腳本

  4.3 當型迴圈和直到型迴圈

    4.3.1 當型和直到型迴圈語法

    4.3.2 當型和直到型迴圈基本範例

    4.3.3 高級生產實戰範例拓展

  4.4 for迴圈結構

    4.4.1 for迴圈結構語法

    4.4.2 for迴圈結構基礎例子

    4.4.3 for迴圈結構深入例子

    4.4.4 for迴圈結構高級例子

5. break continue exit

  5.1 break continue exit 對比

  5.2 break continue exit 範例

6. shell 函數

  6.1 shell函數語法

  6.2 shell函數執行

  6.3 shell函數範例

7. shell script debug

  7.1 常見腳本錯誤範例

    7.1.1 if條件句缺少if結尾關鍵字

    7.1.2 迴圈結構體中缺少關鍵字錯誤

    7.1.3 成對的符號落了單導致錯誤

    7.1.4 中括弧[]兩端沒空格導致錯誤

  7.2 shell腳本調式技巧

    7.2.1 使用dos2unix命令處理腳本

    7.2.2 使用echo命令調試

    7.2.3 使用bash命令參數調試

    7.2.4 使用set命令調試部分腳本內容

8. shell script 開發習慣、規範、只讀

  8.1 命名規範

    8.1.1 版本和運行參宿

    8.1.2 變數命名

    8.1.3 函數命名

    8.1.4 腳本(模塊)命名

    8.1.5 臨時文件的命名

  8.2 代碼風格規範

    8.2.1 代碼框架

    8.2.2 函數規範

    8.2.3 條件語句與迴圈

  8.3 註釋規範

    8.3.1 文件/模塊註釋

    8.3.2 重要函數註釋

    8.3.3 寫註釋的好習慣

  8.4 引用符號使用規範

  8.5 日誌規範

  8.6 介面文件規範

  8.7 配置規範

    8.7.1 配置文件規範

    8.7.2 配置項的檢查

  8.8 腳本存放規範

  8.9 補充規範開發習慣

9. shell開發環境的配置調整和優化

  9.1 設置SecureCRT終端vim shell 環境配置

  9.2 vim shell環境功能

    9.2.1 SecureCTR終端vim自動增加版權功能信息

    9.2.2 vim編輯器中成對括弧自動補全功能

    9.2.3 vim編輯器中函數等自動補全功能

    9.2.4 vim編輯器中自動縮進、高亮顯示等

  9.3 vim shell環境配置.vimrc實現代碼及參數

 

 

  

  7.2 shell script debug技巧


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

-Advertisement-
Play Games
更多相關文章
  • 本文對SSH連接驗證機制進行了非常詳細的分析,還詳細介紹了ssh客戶端工具的各種功能,相信能讓各位對ssh有個全方位較透徹的瞭解,而不是僅僅只會用它來連接遠程主機。 另外,本人翻譯了ssh客戶端命令的man文檔,如本文有不理解的地方,可以參考man文檔手冊:ssh中文手冊。 本文目錄: 1.1 非對 ...
  • 一、VMvare虛擬機的安裝 1、首先雙擊--你下載的安裝包 2、VMware Workstation 10.0.0 的自動解壓畫面 3、歡迎嚮導--雙擊--下一步 4、先勾取我的接受--然後雙擊--下一步 5、繼續下一步 6、設置安裝路徑,可根據自己需要更改 7、完成安裝 二、在VMvare中新建 ...
  • 一、打開控制面板,修改語言的歸屬地為China 修改完成之後重啟,一般能解決大部分問題,如果依然有部分顯示亂碼,就需要去修改註冊表 ...
  • CentOS 6.x安裝與配置指南,由本人原創編撰,不足之處還望見諒,日後會著手將 CentOS 7.x的安裝與配置的指南完成,同時將會著手撰寫以下應用軟體的安裝與配置指南: 1、CentOS 已安裝成功; 2、著手安裝JAVA環境; 3、著手安裝Tomcat應用伺服器; 4、著手安裝RibbitM... ...
  • [20170705]diff比較執行結果的內容.txt--//有時候需要比較2個命令輸出的結果進行比較,比較笨的方法如下,例子:$ lsnrctl status LISTENER_SCAN2 > /tmp/b2.txt$ lsnrctl status LISTENER_SCAN3 > /tmp/b3 ...
  • 本文總結了Ubantu 16.04 環境下的samba安裝、配置及使用。本文為原創,也是我的第一篇博客,以後會經常寫博客,記錄自己的學習、總結及研究,讓博客見證著我成長的軌跡。 下文中的所有命令均使用root許可權或添加sudo命令執行。 1. samba 安裝 2. 查看samba服務 samba安 ...
  • 本機環境: 1.更新軟體列表 2.安裝pip工具包 3.安裝ss 4.ss配置: (1)可以直接啟動:sudo ssserver -p 8388 -k password -m aes-256-cfb -d start (2)創建配置文件啟動: 單用戶的配置文件: /etc/shadowsocks.j ...
  • 當命令或語句不在命令行執行,而是通過一個程式文件執行時,該程式就稱為shell script或shell 程式。shell腳本文件中可以編寫一系列命令和命令語句、變數和流程式控制制語句等結合起來就形成了一個功能強大的shell script shell 程式類似於DOS系統下的批處理程式(*.bat) ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...