shell指令碼-if else 語句以及test命令
#!/bin/bash
text=jack
if grep $text /etc/passwd
then
echo ok
else
echo "not exist"
fi
先查詢是否有這個使用者,查到,輸出OK,沒查到,輸出不存在.
注意,then的下一行的前面,不是空格,而是tab.其實這裡空格也行。只是為了好看,用TAB。
這裡可以看出,if裡面,只能是命令,命令返回0,才會執行then裡面的內容
然後真實中,通常if中的內容,並不是一個命令!那要怎麼處理呢,比如就是比較一個大小,就要用到test比較,以下是test比較常用寫法
#!/bin/bash
a=5
b=10
if [ $a -gt $b ]
then
echo "$a greater than $b"
else
echo "$a smaller than $b"
fi
可以看出if 後面變成一個[] 而且注意,括號裡面,前後都是有空格的!必須有空格,不然為錯
這裡的 -gt 表示大於 ,對應的 -lt 表示小於
這種寫法,也是最最常用的if的寫法
再比如,一個常用的 -d 來判斷檔案路徑是否存在
#!/bin/bash
mkdir=/usr/watson
if [ -d $mkdir ]
then
echo "檔案存在"
else
echo "檔案不存在"
fi
以下為常用判斷
檔案比較
-d 檢查是否存在,並且是一個目錄
-e 檢查file是否存在
-f 檢查是否存在,並且是一個檔案
-r 檢查是否存在,並且可讀
-w、-x
file1 -nt file2 file1比file2新
file1 -ot file2 file1比file2舊
[ -f "somefile" ] :判斷是否是一個檔案
[ -x "/bin/ls" ] :判斷/bin/ls是否存在並有可執行許可權
[ -n "$var" ] :判斷$var變數是否有值,或者叫長度是否非0,類似java中的str判空
[ "$a" = "$b" ] :判斷$a和$b是否相等
-r file 使用者可讀為真
-w file 使用者可寫為真
-x file 使用者可執行為真
-f file 檔案為正規檔案為真
-d file 檔案為目錄為真
-c file 檔案為字元特殊檔案為真
-b file 檔案為塊特殊檔案為真
-s file 檔案大小非0時為真
-t file 當檔案描述符(預設為1)指定的裝置為終端時為真
含條件選擇的shell指令碼 對於不含變數的任務簡單shell指令碼一般能勝任。但在執行一些決策任務時,就需要包含if/then的條件判斷了。shell指令碼程式設計支援此類運算,包括比較運算、判斷檔案是否存在等。
基本的if條件命令選項有: - eq —比較兩個引數是否相等(例如,if [ 2 –eq 5 ])
-ne —比較兩個引數是否不相等
-lt —引數1是否小於引數2
-le —引數1是否小於等於引數2
-gt —引數1是否大於引數2
-ge —引數1是否大於等於引數2
還有一種,如果是比較複雜的數學表示式,可以用雙掛號形式
if(( a++ > 90 ))
相關文章
- Shell 指令碼語句指令碼
- Shell test 命令
- Shell指令碼應用 – for、while迴圈語句指令碼While
- 《shell指令碼if..then..elif..then.if語句的總結》指令碼
- 課時34:豐富的else語句以及簡潔的with語句
- Shell指令碼之for迴圈語句的應用指令碼
- JavaScript if else 語句JavaScript
- Linux Shell指令碼程式設計while語句案例Linux指令碼程式設計While
- Shell學習【test命令】
- 【指令碼】shell語法指令碼
- 學習Scala IF…ELSE 語句
- Shell指令碼中cd命令使用指令碼
- shell測試和比較函式--test、[、[[、((、和 if-then-else解密函式解密
- Java 判斷語句 - if…else/switchJava
- Python if else條件語句Python
- python學習:for else語句Python
- [29期] [Linux常用]Shell 命令和語句Linux
- python 中的 for-else 和 while-else 語句PythonWhile
- Shell指令碼常用命令整理指令碼
- shell指令碼中cd命令無效指令碼
- shell和bash指令碼命令學習指令碼
- 輕鬆使用“Explain Shell”指令碼來理解 Shell 命令AI指令碼
- 【shell 】 test, /usr/bin/test, [ ], 和/usr/bin/[都是等價命令
- sql宣告變數,及if -else語句、while語句的用法SQL變數While
- Python中if else語句出錯Python
- Linux命令和shell指令碼學習Linux指令碼
- shell指令碼中不識別source命令指令碼
- shell指令碼的命令列引數 - todo指令碼命令列
- Shell階段04 shell流程之case語句, 服務啟動停止指令碼(rsync, nginx), shell加鎖機制指令碼Nginx
- ORACLE DBA常用語句和指令碼Oracle指令碼
- C 語言教程:條件和 if...else 語句
- 執行shell指令碼報錯:-bash: ./test1.sh: /bin/bash^M: ...指令碼
- Python if else條件語句詳解Python
- JavaScript switch與if else語句的區別JavaScript
- Shell指令碼中執行sql語句操作MySQL資料庫的幾個方法指令碼MySql資料庫
- shell指令碼指令碼
- shell指令碼linux命令連續執行指令碼Linux
- Shell指令碼對ps命令隱藏引數指令碼