目錄
一、shell中的運算
1、數學比較運算
2、檔案的比較運算
3、字串比較運算
4、邏輯運算
5、賦值運算
二、if語法
1、語法1:單if語句
2、語法2:if-then-else語句
3、多層if語句
4、if高階語法
test命令(man test檢視幫助資訊)
運算子解釋:
-eq(equal)
等於-gt(greater than)
大於-lt(less than)
小於-ge (greater or equal)
大於或等於
-le(less or equal)
小於或等於
-ne (not equal)
不等於test 命令可檢測比較運算的結果
eg:巧妙處理浮點數進行運算
定義變數時,變數的值需要執行乙個命令才能得出,此時要將該命令用反引號``引起來。
#!/bin/bash
name1=`echo "1.5*10"|bc |cut -d '.' -f1` #cut -d以「.「分割,取第乙個字段
name2=$((2*10))
test $name1 -ne $name2;echo $?
bash -x float.sh #列印debug過程資訊
-d檢查檔案是否存在且為目錄
-e檢查檔案是否存在(資料夾或者檔名稱都可以)
-f檢查檔案是否存在且為檔案
-r檢查檔案是否存在且可讀
-s檢查檔案是否存在且不為空
-w檢查檔案是否存在且可寫
-x檢查檔案是否存在且可執行
-o檢查檔案是否存在並且被當前使用者擁有
-g檢查檔案是否存在並且預設組為當前使用者組
file1 -nt file2
檢查file1是否比file2新(比較的是最近的修改時間)
file1 -ot file2
檢查file1是否比file2舊
-ef比較兩個檔案的inode節點是否相同
運算子解釋:(注意字串一定要注意使用引號引起來)
==等於
!=不等於
-n檢查字串的長度是否大於0
-z檢查字串的長度是否為0
邏輯與運算:&&
邏輯或運算:||
邏輯非運算:!
= :賦值運算子 eg:a=10; name='ning'
注意空格不可缺少
原理同上,有基礎的就會寫了
擴充套件:指令碼傳參
指令碼**中直接用$1或者$2就是指的是執行指令碼時的第1個引數和第2個引數
bash a.sh 3 5 #$1就是3,$2就是5
(1)條件符號使用雙小圓括號,可以在if判斷語句中植入數學表示式
注意:雙小圓括號中使用的比較運算子使用的是我們傳統的比較運算子》,>=,
(2)使用雙中括號可以在條件中使用萬用字元
Shell中的流程控制
shell裡面的流程控制不能為空,因此如果else裡面沒有語句就不要寫else,貌似也可以在else裡面寫乙個 表示什麼都不做。源自實驗樓的高階 bash 指令碼程式設計指南課程。if語句的語法格式為 if condition then command 1 command 2 command n f...
Shell流程控制
case迴圈 if condition condition then statements if true 1 elif condition condition then statements if true 2 else statements if all else fails fi注 方括號中的...
Shell 流程控制
shell的流程控制不可為空,如果else分支沒有語句執行,就不要寫這個else。if 語句語法格式 if condition then command1 command2 commandn fi寫成一行 適用於終端命令提示符 if ps ef grep c ssh gt 1 then echo t...