Shell腳本編程基礎

1編程基礎

程序:指令+數據

程序編程分格:

過程式:以指令為中心,數據服務于指令

對象式:以數據為中心,指令服務于數據

Shell程序:提供了編程能力,解釋執行

程序的執行方式

計算機:運行二進制指令

編程語言:

低級:匯編

高級:編譯:高級語言->編譯器->目標代碼

編譯性語言編寫的程序通常是需要通過編譯器去轉換成計算機可以識別的二進制文件,并且是一個獨立的文件,然后再去運行,像?java,C#等

解釋:高級語言->解釋器->機器代碼

像shell這種就是解釋性語言,它可以把編寫好的文本直接拿來運行,在運行時,后臺的shell編譯器會臨時的將文本文件解釋成機器代碼,不會生成獨立二進制文件,它是放在內存中的 還有像Perl,Python也是解釋性語言

編程基本概念

編程邏輯處理方式:

順序執行 多個命令順序執行

循環執行 為了滿足某種條件我們需要命令的循環執行像創建多個賬號,復制或打印多個文件等

選擇執行 滿足各種不同的條件去執行不同的命令

Shell編程:過程式,解釋執行

編程語言的基本結構:

各種系統命令的組合

數據存儲:變量,數組

表達式:a+b

語句:if

 

2,?Shell腳本基礎

Shell腳本:

包含一些命令或申明,并符合一定的文本文件

格式要求:首行shebang機制

#!/bin/bash

#!/user/bin/Python

#!/user/bin/Perl

Shell腳本的用途有:

自動化常用命令

執行系統管理和故障排除

創建簡單的應用程序

處理文本或文件

創建shell腳本

第一步:使用文本編輯器來創建文本文件

第一行必須包括shell聲明序列:#

#!/bin/bash

添加注釋

注釋以#開頭

第二步:運行腳本

給予執行權限,在命令上指定腳本的絕對火相對路徑

直接運行解釋器,將腳本作為解釋器的程序的參數運行

腳本規范

腳本代碼開頭約定

1 第一行一般為調用使用的語言

2 程序名,避免更改文件名而無法找到正確的文件

3 版本號

4更改后的時間

5作者相關信息

6 改程序的作用,及注意事項

7 最后是各版本的更新簡要說明

腳本的基本結構

#!SHEBANG

CONFIGUrATION_VARIABLES??變量

FUNCTION_DEFINITIONS ?????函數

MAIN_CODE ????????????????其它指令

腳本調試

檢測腳本中的語法錯誤

bash -n

圖片1

調試執行

bash -x

 

圖片2

 

3?變量

變量:命名的內存空間

 

數據存儲方式:

字符:

數值:整型,浮點數

變量:變量類型

作用:1?數據存儲格式

2 參與的運算

3 表示的數據范圍

類型:字符

數值:整型,浮點數

 

強類型:變量不經過強制轉換,它永遠是這個數據類型,許隱式的類型轉換,一般定義變量時必須指定類型,參與必須符合類型要求;調用為聲明變量會產生錯誤

如 java, c#

弱類型:語言的運行時會隱式做數據類型轉換,無需指定,默認均為字符型;參與運算會自動進行隱式類型轉換;無需事先定義可直接調用

如:bash?不支持浮點數,php

變量命名法則:

1 不能使用程序中的關鍵字

2 只能使用數字,字母及下劃線,且不能以數字開頭

3 見名知義

4 統一命名規則:駝峰法

局部變量

變量賦值:name=’value’ ?變量的值建議用引號 以防值之間有空格被誤認為命令而報錯

可以使用引用value

1可以是直接字符串:name=“root”

2變量引用:name=“$USER”

3命令引用:name=`command` name=$(command)

變量引用:${name} ?$name

“” :弱引用,其中的變量引用會被替換為變量值

‘ ’:強引用,其中的變量引用不會被替換為變量值,而保持原字符串

顯示已定義的所有變量:set

刪除變量:unset?name 建議不用的變量及時刪除,使之釋放空間

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89012

(0)
liuyongweiliuyongwei
上一篇 2017-11-27
下一篇 2017-11-27

相關推薦

  • 那些年我們一起追過的緩存寫法(三)

    原文出處: 蘑菇先生    上次我們說了多級緩存,本章詳細介紹下內存緩存該如何設計。 一:分析設計 假設有個項目有一定并發量,要用到多級緩存,如下: 在實際設計一個內存緩存前,我們需要考慮的問題: 1:內存與Redis的數據置換,盡可能在內存中提高數據命中率,減少下一級的壓力。 2:內存容量的限制,需要控制緩存數量。 3:熱點數…

    Linux干貨 2015-03-04
  • FHS文件系統各目錄及功能

    FHS即:filesystem hierarchy standard 的縮寫,意思是文件系統目錄標準,Linux系統采用這種文件組織形式,這是一種樹形結構組織文件。如下圖, /bin : 此文件用于放置二進制執行文件。 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir,…

    Linux干貨 2016-10-17
  • 設計模式(六)橋連模式Bridge(結構型)

    1. 概述       在軟件系統中,某些類型由于自身的邏輯,它具有兩個或多個維度的變化,那么如何應對這種“多維度的變化”?如何利用面向對象的技術來使得該類型能夠輕松的沿著多個方向進行變化,而又不引入額外的復雜度? 例子1:設想如果要繪制矩形、圓形、橢圓、正方形,我們至少需要4個形狀類,但是如果繪制的圖形需要具有不同的…

    Linux干貨 2015-06-26
  • 第六周作業

    請詳細總結vim編輯器的使用并完成以下練習題 vim總結:     模式:編輯模式                 插入模式                 末行模式  …

    Linux干貨 2017-02-06
  • 手動添加用戶

        通常使用useradd命令可以輕松添加一個用戶,然后使用passwd命令設置一個密碼后就可以登錄系統了,其實這一過程完成可以自己手動完成,下面就讓我們來通過修改配置文件來添加一個用戶。 一、修改/etc/passwd文件     在etc/passwd文件中手動添加一行內…

    Linux干貨 2015-04-27
  • 馬哥教育網絡班22期第一周課程練習1-3天

    1.描述計算機組成及其功能 CPU:  運算器  控制器  寄存器  緩存 存儲器:  RAM(隨機訪問存儲器)  I/O設備:               i:下指令,提供數據 如:鍵鼠     &…

    Linux干貨 2016-08-15
欧美性久久久久