為什么要學(xué)習(xí)shell編程
Linux系統(tǒng)中會大量的使用shell九杂,工作中我們也需要自動化實現(xiàn)業(yè)務(wù);例如:自動備份露乏、監(jiān)控枢舶、自動安裝服務(wù)
shell編程是Linux運維人員必須要會的編程語言赶么。最簡單的編程語言
shell肩豁、python? 是運維人員必須具備的本領(lǐng)
什么是shell
shell就是一個解釋器 (翻譯官) , 命令行的命令以及腳本都會通過shell解釋傳給操作系統(tǒng)辫呻,處理后再輸出給用戶
在創(chuàng)建用戶時清钥,系統(tǒng)指定的翻譯官
shell的分類
C7:sh? ? bash(默認(rèn))
Bourne shell
Korn shell
Bourne again shell
C shell
什么是shell腳本
將程序、命令放入文件里執(zhí)行放闺,這個文件稱之為shell腳本文件
工作中最多的編程寫腳本祟昭,存放在文件里
shell的變量
全局變量(環(huán)境變量)
在整個系統(tǒng)中生效、一般是大寫怖侦、系統(tǒng)中默認(rèn)就存在一些這樣的變量篡悟,滿足系統(tǒng)和程序運行的需求
自定義環(huán)境變量
export(臨時生效)
/etc/profile----->~./bash_profile---->~./bashrc---->/etc/bashrc(永久生效)
推薦以后把環(huán)境變量放入/etc/bashrc
局部變量(普通變量)
是編寫shell腳本最常用的變量
變量名=值
變量名:數(shù)字、字母匾寝、下劃線搬葬,不能是數(shù)字開頭
= :賦值符,把什么東西給誰艳悔;賦值符兩邊不能有空格
值:東西急凰,變量內(nèi)容
? ? ? 單引號、雙引號猜年、反引號抡锈、不加引號
let? 計算命令
表達式
[]? 中括號表達式,中括號里面兩端必須要有空格
整數(shù)表達式
>? -gt
>=? -ge
<? -lt
<=? -le
=? -eq
!=? -ne
整數(shù)表達式符? 兩端必須要有空格
中括號里面兩端必須要有空格
變量和比較的內(nèi)容乔外,不需要加引號
字符表達式
-z? 變量內(nèi)容長度為0時床三,為真。zero
-n? 變量內(nèi)容長度不為0時杨幼,為真勿璃。not zero
a==a 字符串是否相同
循環(huán)語句
if? 判斷句語法
if [ 表達式 ]
then
? ? ? 命令
fi
read? 讀取用戶輸入
-p? 提醒
-t? 多長時間內(nèi)等待輸入
特殊位置變量
$1? 腳本文件的第一個參數(shù)
$2? 腳本文件的第二個參數(shù)
for循環(huán)語句
for n in? 取值列表
do
? ? 執(zhí)行命令
done
說明
1) 字符串要加雙引號