課堂筆記day28——Shell基礎

1、為什么要學習Shell編程?

? ?? 1)Linux系統中會大量的使用Shell,工作中我們也需要自動化實現業務。

? ? ? ? ?? 例如:自動備份、監控、自動安裝服務

? ?? 2)Shell編程是Linux運維人員必須要回的編程語言(最簡單的編程語言)。

? ?? 3)編程也是運維人員必須具備的本領:

? ? ? ? ?? Shell、Puthon是運維人員必須具備的本領。

2、什么是Shell?

? ? ? ? Shell就是一個解釋器(翻譯官),命令行的命令以及腳本都會通過Shell解釋,傳給操作系統,處理后再輸出給用戶。

3、Shell的分類

? ?? 1)Bourne shell

? ?? 2)C shell:

? ? ? ? ? csh、tcsh

4、C7:默認Shell



5、什么是Shell腳本?

? ?? 1)將程序、命令放入文件里執行,這個文件稱之為Shell腳本文件。

? ?? 2)工作中最多的就是編程寫腳本,存放在文件里。

6、Shell變量:

? ?? 1)全局變量(環境變量):

? ? ? ? ?? a、在整個系統中生效、一般是大寫、系統中默認就存在一些這樣的變量,用于滿足系統和程序運行的需求。

? ? ? ? ?? b、系統自帶的環境變量:



? ? ? ? ?? c、自定義環境變量:(命令行臨時生效)

? ? ? ? ? ? ? ?? 方法一:export OLDBOY="I am oldboy."

? ? ? ? ? ? ? ?? 方法二:OLDBOY="I am oldboy."

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? exportOLDBOY



? ? ? ? ?? d、環境變量永久生效:

? ? ? ? ? ? ? ? ? vim /etc/bashrc

? ? ? ? ? ? ? ?? 放到最后一行

? ? ? ? ? ? ? ? . /etc/bashrc

? ? ? ? ? ? ? ? echo $OLDBOY(輸出一個變量內容就加$變量名)

? ?? 2)局部變量(普通變量):

? ? ? ? ?? a、是編寫Shell腳本最常用的變量。

? ? ? ? ?? b、用法:變量名=值?(例如:a=1)

? ? ? ? ? ? ? ? 變量名:數字、字母、下劃線、不能是數字開頭

? ? ? ? ? ? ? ? =等號:賦值符(把什么東西給誰)

? ? ? ? ? ? ?? 值:東西,變量內容(引用內容的符號:單引號、雙引號、反引號、不加引號)



7、表達式

1)[? 表達式? ]中括號表達式:中括號里面兩端必須要有空格。

字符串要加雙引號:(如果表達式成立,打印1,否則打印0)



[ "a" = "b" ] && echo 1

如果表達式成立,打印1

[ "a" = "b" ] || echo 0

如果表達式成立是假的,打印0

[ ! "a" = "b" ] && echo 1

取反

2)整數表達式:

? ? ? a、整數表達式符,兩端必須要有空格

? ?? b、中括號里面兩端必須要有空格

? ?? c、變量和不比較的內容,不需要加引號

-gt ? ? >

-ge ?? >=

-lt ? ?? <

-le ? ? <=

-eq ?? =

-ne ?? 不等于

3)字符表達式:?

-z 變量內容長度為0時,為真(表達式正確)。zero?

-n 變量內容長度不為0是,為真(表達式正確)。not? zero?

a == a 字符串是否相同?


8、Shell判斷句(如果.....那么....)

如果a=10 ? ? ? ? ? ? ? ? ? ? if [ 表達式 ]

那么 ? ? ? ? ? ? ? ? ? ? ? ? ? ? then

? ? ? echo 1 ? ? ? ? ? ? ? ? ? ? ? ?? 命令

否則 ? ? ? ? ? ? ? ? ? ? ? ? ?? else

? ? ? echo 2 ? ? ? ? ? ? ? ? ? ? ? ?? 命令

果如 ? ? ? ? ? ? ? ? ? ? ? ? ?? fi

示例一、如果a等于10打印1,不等于10打印2


示例二、如果今天是周六就看電影,不是就好好學習


示例三、(實現多條件)如果今天是周6或周日就去看電影打游戲,如果不是就好好上課


8.2? read命令:交互式讀取用戶輸入

-p? "提醒:"

-t? "多長時間內等待輸入"



8.3練習題:Shell編程實現,兩個整數比較大小


9、for循環

for n in 取值列表

do?

?? 執行命令

done

9.1示例:

示例一、


示例二、顯示過程? -x


示例三、



10、書寫腳本習慣:

1)以 .sh 結尾

2)腳本開頭第一行#!/bin/bash腳本內容由誰解釋

?? 由于Linux下默認是bash,所以也可以不寫這一行

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 官網 中文版本 好的網站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,435評論 0 5
  • 一、Python簡介和環境搭建以及pip的安裝 4課時實驗課主要內容 【Python簡介】: Python 是一個...
    _小老虎_閱讀 5,803評論 0 10
  • SHELL編程基礎 1、為什么要學習shell編程 linux系統中會大量的使用shell,工作中我們也需要自動化...
    Zh_bd92閱讀 339評論 0 0
  • Day 28 作者:翟玉龍 歸檔:課堂筆記 2019/3/08 快捷鍵: Ctrl + 1 標題****1 Ctr...
    Linux_淡忘閱讀 174評論 0 0
  • 一、shell腳本介紹 1.1 開頭(環境使用shebang機制) #!/bin/bash 必須寫在文件首行 符號...
    優果馥斯閱讀 3,354評論 0 1