4、變數表示式
test是shell程式中的乙個表示式,通常用在流程控制for,while,until,if等結構中,用test命令去判斷檔案的存在與性質,變數的相互關係
語法:test《表示式》
如果《表示式》成立,test返回0,反之返回乙個非0值
字串比較
兩個數值的比較字串比較邏輯操作,可以進行and/or,與其他條件聯合使用
檔案操作,例如檔案是否存在檔案的狀態等
-z《字串》比較字串的長度是否為0,如果等於0則為是返回0數字比較(數值上的比較)-n《字串》比較字串的長度是否大於0,如果大於0則為是,返回0
《字串1> = 《字串2>:比較兩個字串是否相同,相同為是輸出0,等號兩邊要有空格判斷是用==
《字串1>!=《字串2>:比較兩個字串是否相同,不同則為是,
《數值表示式1>《算符》《數值表示式2>(算符兩邊加空格)檔案操作檔案測試表示式通常是為了測試檔案的檔案操作邏輯,-eq:兩者相等 相等為是輸出0
-ne:兩者不等
-lt:前者小於後者
-le:前者小於或等於後者
-gt:前者大於後者
-ge:前者大於或等於後者
-e:物件是否存在,存在返回值為0邏輯測試常用於邏輯測試的《表示式》有:-d:物件存在且為目錄,則返回值為0
-f:物件存在且為檔案,則返回值為0
-l:物件存在且為符號連線,則返回值為0
-r:物件存在且可讀,則返回值為0
-s:物件存在且長度非0,則返回值為0
-w:物件存在且可寫,則返回值為0
-x:物件存在且可執行,則返回值為0
!:測試條件的否定。(與上述的符號用空格隔開)
!《表示式》:《表示式》不成立
《表示式1>-a《表示式2>:《表示式1>與《表示式2同時成立》
《表示式1>-o《表示式2>:《表示式1>或《表示式2>成立
shell流程控制語句
條件控制:if、case、等結構
迴圈控制:for、while、untill、等結構
在shell中,條件判斷語句可以使用if條件語句和case條件語句,case語句的選項比較多
1、if條件語句
用法:if《判別令》;
then
then //else語句可以省略
fi
(此處判別令通常是上述test《表示式》,如果只寫表示式,則用中括號括起來(中括號兩邊要有空格),如果《判別令》返回0,(對於test命令來說,就是其後的表示式成立)則將執行then後的命令清單,反之,則執行else後的命令shell語句中的分號
分號是多個語句之間的分隔符,當只有乙個語句的時候,末尾無需分號,最後乙個語句後面也無需分號
eg:if …if[asdfasffdaf];then
相當於if【adsasdaf】
then
then…
else if …
then…
else if…
then…
練習:乙個簡單登入
1、、=、-o兩邊要有空格,=也可以用==(=作為賦值符號時不能寫成==)
2、$answer,n兩邊寫不寫引號無所謂
3、eg:使用if-then-else語句建立乙個根據輸入分數判斷分數是否及格的shell程式檔名為ak
case條件語句(猜拳遊戲)
if條件語句用於在兩個選項中選定乙個選項,而case條件選擇為使用者提供了個根據字串或變數的值從多個選項中選則一項方法。
語法case《變數》in
《字串1>);;
…《字串n』>);;
);;esac
在case表示式中也可以使用過shell的萬用字元(「」,「?」,「【】」)
通常用「*」作為case命令的最後表示式以便在前面找不到任何相應的匹配項時,執行「其他命令」的命令
eg:假如給出月份數字作為引數,就能編寫乙個回送月份名的指令碼mouth。當給出的數字不在1和12之間時,就得到錯誤資訊
eg:編寫shell指令碼cjpd,根據輸入的學生成績判斷等級。當成績》=90時為a級;80<=成績<90時為b級;70<=成績<80為c級;60<=成績<70為d級;
成績<60為e級
1、for語句迴圈
for < 迴圈變數》[in 《迴圈變數取值集》]
do《命令清單》
done
如果for語句的後半部分被省略,則預設的《迴圈變數取值集》就是命令列引數集
如果命令清單有多餘命令,系統會依次執行
expr:求表示式變數的值,用於整數值
格式:expr 《表示式》
2021 3 19每週學習總結
這一星期,學習了貪心演算法,經過了一星期的貪心演算法的學習,了解了一些問題的解題思路,這裡把題目如何下手和需要注意的問題寫一下 1 有一批貨櫃要裝上一艘載重量為c的輪船,其中貨櫃i的重量為wi。最優裝載問題要求確定在裝載體積不受限制的情況下,將盡可能多的貨櫃裝上輪船 則先用sort對重量從小到大排序...
2021 3 19初始指標
define crt secure no warnings 1 include int main int main int main int main int p arr 陣列名 首元素位址 int i 10 for i 0 i 10 i return 0 野指標 指標指向的位置是不可知的 隨機的,...
學習筆記 雜湊學習筆記
hash基本原理 hash就是乙個像函式一樣的東西,你放進去乙個值,它給你輸出來乙個值。輸出的值就是hash值。一般hash值會比原來的值更好儲存 更小 或比較。那字串hash就非常好理解了。就是把字串轉換成乙個整數的函式。而且要盡量做到使字串對應唯一的hash值。它的主要思路是選取恰當的進製,可以...