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