Shell簡介:
Shell終端解釋器當(dāng)作人與計算機(jī)硬件之間的翻譯器;
Shell腳本命令的工作方式有兩種:交互式和批處理。
交互式(Interactive):用戶每輸入一條命令就立即執(zhí)行。
批處理(Batch):由用戶事先編寫好一個完整的Shell腳本,Shell會一次性執(zhí)行腳本中諸多的命令。
查看SHELL變量可以發(fā)現(xiàn)當(dāng)前系統(tǒng)已經(jīng)默認(rèn)使用Bash作為命令行終端解釋器
簡單的腳本:
編寫簡單腳本查看當(dāng)前工作路徑并列出目錄下所有的文件及屬性信息:
執(zhí)行腳本:
通過輸入完整路徑執(zhí)行腳本(默認(rèn)會因為權(quán)限不足而提示報錯信息):
接收用戶的參數(shù):
Shell腳本內(nèi)設(shè)了用于接收參數(shù)的變量,變量之間可以使用空格間隔。例如$0對應(yīng)的是當(dāng)前Shell腳本程序的名稱,$#對應(yīng)的是總共有幾個參數(shù),$*對應(yīng)的是所有位置的參數(shù)值,$?對應(yīng)的是顯示上一次命令的執(zhí)行返回值,而$1、$2、$3……則分別對應(yīng)著第N個位置的參數(shù)值;
示例:
編寫腳本:
執(zhí)行腳本:
判斷用戶的參數(shù):
Shell腳本中的條件測試語法可以判斷表達(dá)式是否成立,若條件成立則返回數(shù)字0,否則便返回其他隨機(jī)數(shù)值。
按照測試對象來劃分,條件測試語句可以分為4種:
文件測試語句;
邏輯測試語句;
整數(shù)值比較語句;
字符串比較語句;
文件測試即使用指定條件來判斷文件是否存在或權(quán)限是否滿足等情況的運算符
文件測試所用的參數(shù):
-d 測試文件是否為目錄類型
-e 測試文件是否存在
-f 判斷是否為一般文件
-r 測試當(dāng)前用戶是否有權(quán)限讀取
-w 測試當(dāng)前用戶是否有權(quán)限寫入
-x 測試當(dāng)前用戶是否有權(quán)限執(zhí)行
示例:
判斷目錄是否存在,返回0表示存在,否則反之:
判斷是否為一般文件,返回0代表存在且為一般文件,否則反之:
在Shell終端中邏輯“與”的運算符號是&&,它表示當(dāng)前面的命令執(zhí)行成功后才會執(zhí)行它后面的命令,
因此可以用來判斷/usr/local文件是否存在,若存在則輸出指定字樣
除了邏輯“與”外,還有邏輯“或”,它在Linux系統(tǒng)中的運算符號為||,表示當(dāng)前面的命令執(zhí)行失敗后才會執(zhí)行它后面的命令;
第三種邏輯語句是“非”,在Linux系統(tǒng)中的運算符號是一個嘆號(?。?,它表示把條件測試中的判斷結(jié)果取相反值;
整數(shù)比較運算符僅是對數(shù)字的操作,不能將數(shù)字與字符串、文件等內(nèi)容一起操作,而且不能想當(dāng)然地使用日常生活中的等號、大于號、小于號等來判斷;
可用的整數(shù)比較運算符:
-eq:是否等于;
-ne:是否不等于;
-gt:是否大于;
-lt:是否小于;
-le:是否等于或小于;
-ge:是否大于或等于;
示例:
字符串比較語句用于判斷測試字符串是否為空值,或兩個字符串是否相同。它經(jīng)常用來判斷某個變量是否未被定義(即內(nèi)容為空值);
常見的字符串比較運算符:
=:比較字符串內(nèi)容是否相同;
!=:比較字符串內(nèi)容是否不同;
-z:判斷字符串內(nèi)容是否為空;
示例:
判斷String變量是否為空值:
當(dāng)前語系的環(huán)境變量值LANG不是en.US時,則輸出指定提示:
聯(lián)系客服