1. 程式人生 > >linux 使用中括號進行條件判斷

linux 使用中括號進行條件判斷

 格式

“#”代表空格,不可缺少

  • [# param1#op# param2 #]

這種帶比較操作符的形式,op左右必須使用空格隔開.

如 [# “3”==”2” #]  這種缺少空格的寫法會得到結果“true”,當然實際應為”false”.

  • 變數的引用應使用雙引號括起來 [# -z “$name” #].

*********************

name="Jim"

[ $name == "Jack" ]   #將會變成 [ Jim == "Jack" ], 也就出現錯誤了.

*********************

  • 常量應該使用雙引號或單引號括起來 [# ‘1’#==#’10’ #].
  •  更好的書寫方式:

****************************

a. 中括號內的每一個元件都用空格隔開(可謂釜底抽薪)

b. 變數都以雙引號括起來

****************************

 引數

-b file                若檔案存在且是一個塊特殊檔案,則為真 -c file                若檔案存在且是一個字元特殊檔案,則為真 -d file                若檔案存在且是一個目錄,則為真 -e file                若檔案存在,則為真 -f file                若檔案存在且是一個規則檔案,則為真 -g file                若檔案存在且設定了SGID位的值,則為真 -h file                若檔案存在且為一個符合連結,則為真 -k file                若檔案存在且設定了"sticky"位的值 -p file                若檔案存在且為一已命名管道,則為真 -r file                若檔案存在且可讀,則為真 -s file                若檔案存在且其大小大於零,則為真 -u file                若檔案存在且設定了SUID位,則為真 -w file                若檔案存在且可寫,則為真 -x file                若檔案存在且可執行,則為真 -o file                若檔案存在且被有效使用者ID所擁有,則為真 -z string              若string長度為0,則為真 -n string              若string長度不為0,則為真 string1 = string2      若兩個字串相等,則為真 string1 != string2     若兩個字串不相等,則為真 ********************************************************** 參與比較的數字必須能夠轉化為整數
,話說那裡有這個語法的manual? int1 -eq int2          若int1等於int2,則為真 int1 -ne int2          若int1不等於int2,則為真 int1 -lt int2          若int1小於int2,則為真 int1 -le int2          若int1小於等於int2,則為真 int1 -gt int2          若int1大於int2,則為真 int1 -ge int2          若int1大於等於int2,則為真 ********************************************************** ! expr                  若expr為假則複合表示式為真。expr可以是任何有效的測試表達式 expr1 -a expr2         若expr1和expr2都為真則整式為真 expr1 -o expr2         若expr1和expr2有一個為真則整式為真

 例子

鳥哥,用你個例子,別介意^_^

當用戶輸入Y/y時,輸出”Ok, continue”

當用戶輸入N/n時,輸出”Oh, interrupt!”

使用者輸入其他字元或空時,輸出”I don’t know your command!”

參考scripts

#!/bin/bash
#Program
#       use the judge syntax "[ condition ]"
#Author wangdonglei
#History
#       1. 2012/02/21   first write
echo -n "<Y,N>:"
read input
[ "$input" == 'Y' ] || [ "$input" == 'y' ] && echo "OK, continue" && \
exit 0
[ "$input" == 'N' ] || [ "$input" == 'n' ] && echo "Oh, interrupt !" && \
exit 0
echo "I don't know what your choice is."
exit 1

相關推薦

linux 使用括號進行條件判斷

 格式 “#”代表空格,不可缺少 [# param1#op# param2 #] 這種帶比較操作符的形式,op左右必須使用空格隔開. 如 [# “3”==”2” #]  這種缺少空格的寫法會得到結果“true”,當然實際應為”false”. 變數的引用應使用雙引號

linux [] 與 test 命令 進行 條件判斷

以下 摘自 : http://jianlee.ylinux.org/Computer/Shell/shell_test.html 分類參考 檔案狀態測試 -b filename 當filename 存在並且是塊檔案時返回真(返回0) -c filename 當

linux shell編程 判斷服務是否運行

else gre inux 運行 pre lin log 服務 body 判斷nginx是否運行中: if ps -ef|grep "nginx"|egrep -v grep >/dev/null then echo ok! els

Linux Shell編程 條件判斷語法

個數 rom local 存在 nbsp 之間 警告 執行權限 不同 if條件判斷語句 單分支 if 條件語句 語法格式: if [條件判斷式];then 程序 fi 或者 if [條件判斷式] then 程序 fi 在使用單分支 if

kettleSwitch/Case條件判斷的使用

今天在做取數過程中遇到了一個問題,就是增量取數,增量取數大部分用到的是根據時間段來抽取資料,然後插入到目標庫,事實中kettle中有個一次提交多少條記錄的問題,今天暫時不討論這個,主要來說說如何根據中間時間表(主要記錄上次取數的開始時間和結束時間),然後去設定取數的時間段。 下面來看一下遇到的問

MATLAB 跳出if條件判斷

 在編寫MATLAB程式過程中,有時會遇到當程式執行到滿足if條件時讓程式跳出,停止執行的情況,在MATLAB中,使用return語句或者空語句實現程式跳出。如果使用return語句,在指令碼檔案會出現小問題,在函式檔案中則會正常執行。區別如下: 【1】使用return語句

運用gameObject.activeSelf對SetActive(bool value)進行條件判斷

運用gameObject.activeSelf對SetActive(bool value)進行條件判斷 using UnityEngine; using UnityEngine.UI; public class ActiveSelfTest : MonoBehaviour { p

Linux shell程式設計——if條件判斷

if 語句格式if  條件then Commandelse Commandfi                              別忘了這個結尾If語句忘了結尾fitest.sh: line 14: syntax error: unexpected end of fi

關於sql的if條件判斷符 並且和或的表達

今天寫sql語句,然後碰到要同時判斷兩個條件的if語句,瞬間想起c#中肯定是if(id>0&&id<40)和 if(id>0||id<40)等的判斷但是sql中這樣寫很顯然會報錯,經過查詢才知道sql中的寫法是if @id>0 a

linuxawk進行日誌文字的處理過濾

    對於awk命令的介紹可檢視linux命令大全http://man.linuxde.net/awk     linux下日誌分析很常見也很重要,看見那一片如汪洋般的日誌,想死的心都有了,過濾出關鍵日誌,檢視重要資訊,定位分析問題也是必須要掌握的一門技能;     因此

關於mybatis基本型別條件判斷問題

一:發現問題 sql動態語句中如果 parameterType="int" <select id="sel_campusinfo" parameterType="int" resultType="Campusinfo"> select cmpid,cmp

在sql新增if條件判斷

[javascript] view plain copy 有時候呢,我們在mapper檔案中的sql新增if條件的時候,如果orm框架是mybatis的話, 可以使用動態s

insert加入where條件判斷,解決插入重複資料的問題

對於會員註冊,我們經常會做唯一性驗證,通常情況下我們有這兩種方式: 1. 資料庫表設計的時候loginName增加唯一約束 2. 註冊之前先查一下然後再去進行插入操作 針對以上兩種情況,第一種情況,增加約束的話,是最有效的,但如果表結構已經確定了,再修改起

linux括號條件判斷式易出現的問題及解決方法

在linux中,[ ]可以作為條件判斷式,結合if [ ];then.....fi使用。 在使用[]時,要注意,其中的每一部分都要用空格分開,中括號的前後都要有空格,if後面,then前面需要加空格! 以下面的程式為例:   1 #!/bin/bash   2 #該程式

linux shell if 條件判斷 -a 到 -z 的意思

[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FIL

15、自學——Linux的學習進度與任務【bash編程之條件判斷

腳本執行 命令替換 返回 引用 任務 邏輯 與運算 腳本編程 num bash編程之條件判斷 bash編程之條件判斷:判定後續操作的前提條件是否滿足           1、條件判斷的常用判斷類型(bash內生的):               整數測試        

Shell條件判斷語法與判斷條件

expression 表達式 字符串 linux 影響 一,簡介Shell各種判斷結構和運算符的用法是shell編程的基礎,了解shell的判斷、運算符和一些退出狀態對後面的學習有很重要的影響。shell有一個內部命令test經常用於對判斷語句進行測試一種或幾種狀態的條件是否成立二. 判斷

linux--shell編程(三)條件判斷及算術運算

寫一個腳本 head bsp 如何 cut inittab 引用 有用 color 練習:寫一個腳本判斷當前系統上是否有用戶的默認shell為bash; 如果有,就顯示有多少個這類用戶;否則,就顯示沒有這類用戶; #!/bin/bash # grep ‘\<ba

Linux判斷

說明 存在 linu linux中 目錄 -a passwd 基於 連接 格式一:test [參數] 判斷內容格式二:[ [參數] 判斷內容 ]  說明:     a.格式二可以認為是格式一的縮寫     b.格式二裏中括號和內容之間要有空格 基於文件的判斷-d  判斷文件

Python條件判斷

python if 條件判斷# 條件判斷 # 1 print("#1") age = 20 if age >= 18: print(‘your age is‘, age) print(‘adult‘) print("---------------------") # 2 print(