shell脚本的简单学习
生活随笔
收集整理的這篇文章主要介紹了
shell脚本的简单学习
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
什么是shell?
shell是用戶使用linux的工具,它有兩種執(zhí)行方式,一種是交互式解釋執(zhí)行,我們平時(shí)操作linux的各種命令就屬于這種。另一種是批處理的方式,類(lèi)似于程序性語(yǔ)言,有變量和參數(shù),具有流程控制結(jié)構(gòu)。
shell中的變量
我們可以在shell中定義一個(gè)變量,并賦值,正如其它語(yǔ)言一樣。
- env #顯示全局變量(系統(tǒng)變量)
- set #顯示所有變量
- unset + 變量名 #刪除一個(gè)變量。
- echo $變量 # 打印變量的值
- export 變量 # 把變量聲明為全局變量(即在當(dāng)前終端開(kāi)一個(gè)子bash或新開(kāi)終端,通過(guò)export 變量,可以讓變量繼續(xù)生效)
- 修改環(huán)境變量PATH: 編輯系統(tǒng)文件/etc/profile,將python的路徑加入PATH全局變量,保存退出。
- {}聲明變量的邊界
shell中的運(yùn)算符(( )):
- 算術(shù)運(yùn)算符:+、-、*、/、%
- 賦值運(yùn)算符:=、+=、*=、/=、%= 例子:
- 關(guān)系運(yùn)算符:
- ==、>、>=、<、<= 例子:
- &&邏輯與、||邏輯或、!=邏輯非 例子:
- ==、>、>=、<、<= 例子:
- bc 計(jì)算器,支持浮點(diǎn)數(shù)運(yùn)算
test測(cè)試命令:
- (()) 常用于數(shù)字之間的關(guān)系運(yùn)算,但是有很大的局限性。而test命令適用于各種情況,應(yīng)用更方便。
- test -n 'abc' # 測(cè)試字符串a(chǎn)bc的長(zhǎng)度是否為零,如果不為零,那么測(cè)試結(jié)果為真0;如果是空字符,那么為假1
- [? ] 我們習(xí)慣用兩個(gè)中括號(hào)來(lái)代替test命令。注意:中括號(hào)內(nèi)的首位打空格。測(cè)試字符串長(zhǎng)度不為零,用[? ]表達(dá)
- test / [? ] 命令測(cè)試字符常用的選項(xiàng):
- -n #字符串長(zhǎng)度不為零
- -z #字符串長(zhǎng)度為零
- = #字符串是否相等
- != #字符串不相等
- test / [? ]:-a邏輯與、-o邏輯或
- test / [? ] 測(cè)試數(shù)字常用選項(xiàng):
- ?-eq #整數(shù)相等
- -ge #大于等于
- -le #小于等于
- -gt #大于
- -lt #小于
- -ne #不等于
- test / [? ] 測(cè)試文件類(lèi)型:
- -b #判斷文件是塊設(shè)備
- -d #判斷文件是目錄
- -f #判斷文件是普通文件
- -h #判斷文件是普通文件
- 例子:
- 用戶認(rèn)證
- 判斷塊設(shè)備
- 判斷目錄
- 用戶認(rèn)證
shell流程控制:
- if...fi:寫(xiě)一個(gè)判斷登錄是否成功的腳本
注意:如果腳本無(wú)法執(zhí)行,chmod +x 腳本 修改權(quán)限 - if...elif...else...fi 判斷文件類(lèi)型,多個(gè)分支條件:
-
while ...do...done 循環(huán):
sleep 1 暫停1秒;第10次不滿足,done結(jié)束;done下面可以跟下一條命令 - 循環(huán)猜年齡:
- 判斷登錄用戶,登錄成功后執(zhí)行命令:
- for循環(huán):
- C語(yǔ)言風(fēng)格,例子:打印乘法表
控制打印格式:-n 當(dāng)前行不換行打印,echo 空 換行 - shell格式:
- 實(shí)戰(zhàn):測(cè)試哪些ip地址可用
每次ping會(huì)輸出一長(zhǎng)串提示信息,所以通過(guò) &> /dev/null 把提示信息寫(xiě)入空文件;
ping成功了輸出提示,并寫(xiě)入一個(gè)文檔記錄下來(lái)。 - 檢測(cè)/dev下各種類(lèi)型的文件數(shù)量
for后面跟的有結(jié)果就行,比如:
輸出/test目錄下的文件
另外,相對(duì)路徑不能被判斷文件類(lèi)型的條件檢測(cè)到,所以要寫(xiě)絕對(duì)路徑。
注意: 如果鏈接文件的判斷條件在普通文件之下,那么,在if判斷普通文件時(shí),回去尋找連接文件的源文件類(lèi)型,如果源文件是普通文件,那么算作普通文件,稍后之后的鏈接文件就不會(huì)再判斷了,為0. 因?yàn)閕f判斷過(guò)的文件不會(huì)再去重復(fù)判斷。 除非把鏈接文件的判斷條件放在前面。
- C語(yǔ)言風(fēng)格,例子:打印乘法表
總結(jié)
以上是生活随笔為你收集整理的shell脚本的简单学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 各路券商会盟互联网金融 敢问路在何方
- 下一篇: Bitmap 多语言实现及应用