shell中if條件字串、數字比對,[[ ]]和[ ]區別
算符 | 描述 | 示 |
描述 | 示例 | |
檔案比較運算子 | ||
-e filename | 如果 filename 存在,則為真 | [ -e /var/log/syslog ] |
-d filename | 如果 filename 為目錄,則為真 | [ -d /tmp/mydir ] |
-f filename | 如果 filename 為常規檔案,則為真 | [ -f /usr/bin/grep ] |
-L filename | 如果 filename 為符號連結,則為真 | [ -L /usr/bin/grep ] |
-r filename | 如果 filename 可讀,則為真 | [ -r /var/log/syslog ] |
-w filename | 如果 filename 可寫,則為真 | [ -w /var/mytmp.txt ] |
-x filename | 如果 filename 可執行,則為真 | [ -L /usr/bin/grep ] |
filename1 -ntfilename2 | 如果 filename1 比 filename2 新,則為真 | [ /tmp/install/etc/services -nt /etc/services ] |
filename1 -otfilename2 | 如果 filename1 比 filename2 舊,則為真 | [ /boot/bzImage -ot arch/i386/boot/bzImage ] |
字串比較運算子(請注意引號的使用,這是防止空格擾亂程式碼的好方法) | ||
-z string | 如果 string 長度為零,則為真 | [ -z "$myvar" ] |
-n string | 如果 string 長度非零,則為真 | [ -n "$myvar" ] |
string1 = string2 | 如果 string1 與 string2 相同,則為真 | [ "$myvar" = "one two three" ] |
string1 != string2 | 如果 string1 與 string2 不同,則為真 | [ "$myvar" != "one two three" ] |
算術比較運算子 | ||
num1 -eq num2 | 等於 | [ 3 -eq $mynum ] |
num1 -ne num2 | 不等於 | [ 3 -ne $mynum ] |
num1 -lt num2 | 小於 | [ 3 -lt $mynum ] |
num1 -le num2 | 小於或等於 | [ 3 -le $mynum ] |
num1 -gt num2 | 大於 | [ 3 -gt $mynum ] |
num1 -ge num2 | 大於或等於 |
[ 3 -ge $mynum ] |
測試命令 test命令用於檢查某個條件是否成立,它可以進行數值、字元和檔案3個方面的測試,其測試符和相應的功能分別如下。 (1)數值測試: -eq 等於則為真。 -ne 不等於則為真。 -gt 大於則為真。 -ge 大於等於則為真。 -lt 小於則為真。 -le 小於等於則為真。 (2)字串測試: = 等於則為真。 != 不相等則為真。 -z字串 字串長度偽則為真。 -n字串 字串長度不偽則為真。 (3)檔案測試: -e檔名 如果檔案存在則為真。 -r檔名 如果檔案存在且可讀則為真。 -w檔名 如果檔案存在且可寫則為真。 -x檔名 如果檔案存在且可執行則為真。 -s檔名 如果檔案存在且至少有一個字元則為真。 -d檔名 如果檔案存在且為目錄則為真。 -f檔名 如果檔案存在且為普通檔案則為真。 -c檔名 如果檔案存在且為字元型特殊檔案則為真。 -b檔名 如果檔案存在且為塊特殊檔案則為真 |
條件變數替換:
Bash Shell可以進行變數的條件替換,既只有某種條件發生時才進行替換,替換
條件放在{}中.
(1) ${value:-word}
與前者類似,只是若變數未定義或者值為空時,在返回word的值的同時將
若變數以賦值的話,正常替換.否則將訊息message送到標準錯誤輸出(若
(4) ${value:+word}
(5) ${value:offset}
${value:offset:length}
從變數中提取子串,這裡offset和length可以是算術表示式.
(7) ${value#pattern}
${value##pattern}
去掉value中與pattern相匹配的部分,條件是value的開頭與pattern相匹配
#與##的區別在於一個是最短匹配模式,一個是最長匹配模式.
${value%%pattern}
於(7)類似,只是是從value的尾部於pattern相匹配,%與%%的區別與#與##一樣
${value//pattern/string}
進行變數內容的替換,把與pattern匹配的部分替換為string的內容,/與//的區別與上同
shell字串比較、判斷是否為數字
相關推薦
shell中if條件字串、數字比對,[[ ]]和[ ]區別
轉載地址:http://71241.blog.51cto.com/61241/1341137 學習shell的時候總是被shell裡的條件判斷方式搞得頭疼,經常不知道改 用[],[[]],(())還是test,let,今天重點說說它們的區別的使用時應該注意的地方.
Shell中if條件語句的知識和實踐
linux 運維 shell腳本本文主要講解if條件語句在shell的使用場景和示例基本大綱: 1.if條件語句的語法 2.if條件語句多種條件表達式語法 3.單分支if條件語句實踐 4.if條件語句的深入實踐及場景使用一:if條件語句的語法1)單分支結構第一種語法:if
linux中 shell 中 if 條件判斷中 -a 到 -z 的意思
[ -a FILE ] 如果 FILE 存在則為真。 [ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。 [ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。 [ -e FILE ] 如果 FIL
[原]敏捷開發專案中升級mysql資料庫,談談結構、資料比對,navicat for mysql + dbForge Data Compare for MySQL 足矣!
在公司專案中,我有幸負責製作“升級指令碼”。升級指令碼,無疑兩步,先結構比對,再初始資料比對。 一、結構比對 結構比對比較簡單,使用navicat for mysql 工具,“工具”-“結構同步”,選擇好“源”、“目標
js中物件轉化成字串、數字或布林值的轉化規則
js中物件可以轉化成 字串、數字、布林值 一、物件轉化成字串: 規則: 1、如果物件有toString方法,則呼叫該方法,並返回相應的結果;(程式碼通常會執行到這,因為在所有物件中都有toString方法) 2、如果物件有valueOf方法,則呼叫該方法,並返回相應的結果; 3、否則丟擲異常。 通常,所有物件
C#.net讀取Excel表中的資料時,有些欄位內容(字串、數字)讀取不到的解決辦法
匯入Excel時,會丟失一些手機號,或者固定電話號 問題出在於,他們將資料填入Excel時,有些格式是數值型別,有些是文字型別 當用OLEDB讀取Excel的時候,在Extended Properties中若沒有配置IMEX=1的屬性,微軟的處理機制是將列轉換為同一
MyBaits中列舉型別——在資料庫欄位型別為字串、數字等非列舉型別情況下的使用
遇到的問題 當列舉型別的值型別為String時不管資料庫欄位型別是varchar還是其他字串型別總能成功轉換為相應的列舉型別,當是數字型別時有時可以有時不可以,主要原因是列舉型別轉換器的Handler實現導致的,詳見後面的討論。 為什麼要這麼設計? 因為是在處理遺留系統無法
linux shell中 if else以及大於、小於、等於邏輯表示式介紹
比如比較字串、判斷檔案是否存在及是否可讀等,通常用"[]"來表示條件測試。 注意:這裡的空格很重要。要確保方括號的空格。筆者就曾因為空格缺少或位置不對,而浪費好多寶貴的時間。 if ....; then .... elif ....; then .... else ...
[shell]shell中if語句的使用
don 條件 如何 ood 字符串 pre 評分 string 另一個 轉自:http://lovelace.blog.51cto.com/1028430/1211353 bash中如何實現條件判斷?條件測試類型: 整數測試 字符測試 文件測試 一、條
shell中的條件表達式
left images ima 分享 p s == www. 出版 字符 By francis_hao Oct 1,2017 本文摘錄自bash的man手冊 條件表達式 條件表達式是由復合命令 [[ 或內置命令 test 和 [ 使用的,用於測試文件屬性和字符串或
shell中if判斷語句
file true pan rep then 好的 test 遇到 col if 條件測試類型: 文件測試, 數字測試, 字符串測試 if 語句結構: if ... ; then ....; fi if ... ; then ... ; else ... ; fi
shell中的函數、shell的數組、告警系統需求分析
pri 腳本 格式 定制 分享 個數 主程 密碼 參數 shell中的函數 函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。 格式: function f_name() { ?? ?? ?? ?? ??
shell中的函數、shell中的數組、告警系統需求分析
代碼 所有 日誌 bin 統一 管理 unset 包含 ron 20.16-20.17 shell中的函數 函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。 格式: function f_name() {
71.shell中的函數、數組
shell中的函數、數組一、shell腳本中的函數? 函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。格式: function f_name() { command }函數必須要放在最
在js中if條件為null/undefined/0/NaN/""表達式時,統統被解釋為false,此外均為true哦。。。(官方原文如下:)
In if條件 對象 strong 表達 clas tro 數字 此外 Boolean 表達式 一個值為 true 或者 false 的表達式。如果需要,非 Boolean 表達式也可以被轉換為 Boolean 值,但是要遵循下列規則: 所有的對象都被當作 true。 當
shell中的函數、數組、告警系統需求分析
服務 grep shell中的函數 res 取數 系統 mail.sh conf 思路 shell中的函數 ?函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。格式: function f_name() {com
shell中的函數、數組及告警系統需求分析
監控系統 發郵件 顯示元素 讀取 主程 unset shadow lan img 一、shell中的函數 函數就是把一段代碼整理到了一個小單元中,並給這個小單元起一個名字,當用到這段代碼時直接調用這個小單元的名字即可。 格式: function f_name() {
linux 下shell中if的“-e,-d,-f”的用法
符號鏈接 符號 字符串變量 -s 長度 目錄 != filename bsp 文件表達式-e filename 如果 filename存在,則為真-d filename 如果 filename為目錄,則為真 -f filename 如果 filename為常規文件,則為真-
Shell語法—— if 條件語句
.com mysqld password ice rpm null ffi 編輯 mail.rc if 條件語句語法 1.單分支結構 if < 條件表達式 >; then 指令 fi 2.雙分支結構 if < 條件表達式 >; then
shell中if語句的使用
轉載:https://blog.csdn.net/sunny05296/article/details/65987237 Linux shell if 語法 基本語法: if [ command ]; then 符合該條件執行的語句 fi 2、擴充套件語法: if [ c