shell中的運算和流程控制 if語句

2021-10-18 11:32:20 字數 2274 閱讀 1242

目錄

一、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...