Shell指令碼,就是利用Shell的命令解釋的功能,對一個純文字的檔案進行解析,然後執行這些功能,也可以說Shell指令碼就是一系列命令的集合。
Shell可以直接使用在win/Unix/Linux上面,並且可以呼叫大量系統內部的功能來解釋執行程式,如果熟練掌握Shell指令碼,可以讓我們操作計算機變得更加輕鬆,也會節省很多時間。
一、Shell應用場景
將一些複雜的命令簡單化(平時我們提交一次github程式碼可能需要很多步驟,但是可以用Shell簡化成一步)
可以寫一些指令碼自動實現一個工程中自動更換最新的sdk(庫)
自動打包、編譯、釋出等功能
清理磁碟中空檔案夾
總之一切有規律的活指令碼都可以嘗試一下
需要精密的運算的時候
需要語言效率很高的時候
需要一些網路操作的時候
總之Shell就是可以快速開發一個指令碼簡化開發流程,並不可以用來替代高階語言
Shell的工作原理
Shell可以被稱作是指令碼語言,因為它本身是不需要編譯的,而是透過直譯器解釋之後再編譯執行,和傳統語言相比多瞭解釋的過程所以效率會略差於傳統的直接編譯的語言。
1.3.1 最簡單的指令碼:
只需要開啟文字編輯工具,編輯成以上的樣子,然後儲存成test.sh
1.3.2 執行該指令碼:
“效果圖1”
這樣我們便寫出來了第一個最簡單的指令碼,下麵我們可以嘗試著寫一些複雜的指令碼。
1.3.3 Shell中的變數
這裡面需要註意的就是,“=”前後不能有空格,命名規則就和其它語言一樣了。
1.3.4 訪問變數
當想要訪問變數的時候,需要使用$,否則輸出的將是純文字內容,如下圖所示。
“效果圖2”
Shell中的四則運算
例子程式
這裡面需要註意的就是,定義變數的時候“=”前後是不能有空格的,但是進行四則運算的時候運運算元號前後一定要有空格,乘法的時候需要進行轉義。
效果圖3
其它運運算元 =、==、!=、!、-o、-a
例子程式
效果圖4
關係運運算元
例子程式
效果圖5
字串運運算元
字串
效果圖6
陣列
效果圖7
輸出程式:echo
效果圖8
printf
同c語言,就不過多介紹了
判斷陳述句
-
if
-
if-else
-
if-elseIf
-
case
效果圖9
test命令
for迴圈
效果10
while迴圈
以上是while迴圈的兩種用法,第一種是比較常規的,執行迴圈,然後每次都把控制的數加1,就可以讓while迴圈有退出的條件了。
第二種是使用者從鍵盤資料,然後把使用者輸入的文字輸出出來。
跳出迴圈
函式
定義一個沒有傳回值的函式,然後呼叫該函式
定義一個有傳回值的函式,呼叫該函式,輸出結果
效果圖11
定義了一個需要傳遞引數的函式
效果圖12
重定向
寫一個自動輸入命令的指令碼
自動提交github倉庫的指令碼
效果圖13
以上便是我對shell知識的總結,歡迎大家點贊,評論,一起討論~~
《Linux雲端計算及運維架構師高薪實戰班》2018年11月26日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –