單/雙中括號與測試條件

測試命令


tesst
[]內置命令
[[]]bash中的關鍵字

單中括號


格式[#express1#op#express2#]
注意:
  其中#代表括號不能省略
  不能匹配模式
  變量引用應用雙引號括起,尤其當變量引用有空格時
  與或非形式-a –o -not
  常量應用單/雙引號括起
  整數比較時,< == ...需用反斜號轉義,相當于-lt -eq ...

[root@ZYB ~]# zyb="haha haha"
[root@ZYB ~]# echo $zyb
haha haha
[root@ZYB ~]# [ $zyb == "haha haha" ]
-bash: [: too many arguments
[root@ZYB ~]# echo $?
2
[root@ZYB ~]# [ "$zyb" == "haha haha" ]
[root@ZYB ~]# echo $?
0
[root@ZYB ~]# [ "$zyb" != "haha haha" ]
[root@ZYB ~]# echo $?
1
[root@ZYB ~]# [ "$zyb" != "hahahaha" ]
[root@ZYB ~]# echo $?
0
[root@ZYB ~]# [ "$zyb" == "hahahaha" ] ; echo $?
1
\#使用管道輸出測試結果有問題`
[root@ZYB ~]# [ "$zyb" == "hahahaha" ] | echo $?
0

雙中括號


格式[[#pattern1#op#pattern2#]]
注意:
  其中#代表括號不能省略
  可用于模式匹配,支持正則表達式
  變量引用最好用雙引號括起,匹配的模式中的單雙引號都代表符號自身
  與或非形式&& || !
  整數比較時,< == ...需用反斜號轉義,相當于-lt -eq ...

[root@ZYB ~]# zyb="\"haha haha\""
[root@ZYB ~]# echo $zyb
"haha haha"
[root@ZYB ~]# [[ $zyb == ?haha?haha? ]] ; echo $?
0
[root@ZYB ~]# [[ "$zyb" == ?haha?haha? ]] ; echo $?
0
[root@ZYB ~]# [[ "$zyb" == "haha?haha" ]] ; echo $?
1

算術表達


let var_name=算術表達式
let var_name+=valuelet不能省略
let var_name++let不能省略
var_name=$[算術表達式]算術表達式空格較隨意
var_name=$((算術表達式))算術表達式空格較隨意
var_name=${var_name:-value}var_name非空保留原值;var_name空賦值value

[root@ZYB ~]# num=1+2; echo $num
1+2
[root@ZYB ~]# let num=1+2 ; echo $num
3
[root@ZYB ~]# var_name=1; echo $var_name 
1
[root@ZYB ~]# let var_name+=2; echo $var_name 
3
[root@ZYB ~]# var_name+=2 ; echo $var_name 
32

測試條件


布爾運算:與&&||!
組合條件測試:與-a-o-not
二元整數測試:num1 op num2
  -eq等于  -ne不等于
  -le小于等于  -ge大于等于  -lt小于  -gt大于
雙目字符測試:str1 op str2
  ==等于  !=<>不等于  >大于  <小于
  =~左側是字符串,右側是一個模式,判斷左側的字符串能否被右側的模式所匹配,通常只在[[]]中使用,模式中可以使用行首、行尾錨定符,但是模式不要加引號
單目字符測試:
  -n str不空為真,空為假
  -z str空為真,不空為假
單目文件測試op /path/to/somefile
  -e文件是否存在  -a同前  -f普通文件  -d目錄
  -b存在且塊設備  -c存在且字符設備  -h/-L存在且符號鏈接
  -p存在且管道  -S存在且套接字  -s存在且不為空
  -r存在且有讀權限  -w存在且有寫權限  -x存在且執行權限
雙目文件測試file1 op file2
  -ntfile1比file2新
  -otfile1比file2老
  -effile1與file2是否指向同一個文件,包括軟硬鏈接

轉載于:https://www.cnblogs.com/hesper/p/8901774.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/452906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452906.shtml
英文地址,請注明出處:http://en.pswp.cn/news/452906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

暗時間--平凡與優秀間的距離

每個人都希望&#xff0c;在他所從事的領域很優秀&#xff0c;那么如何才能優秀呢&#xff1f;有人做過一個研究&#xff0c;說那些優秀的音樂家&#xff0c;在他們成名之前&#xff0c;已經訓練過10000小時。有人可能成功得早&#xff0c;如莫扎特16歲&#xff0c;有些可能需要…

IP分組

IP分組就是根據Ip地址來進行分組&#xff0c;目的可以是為了對不同 的地址組分配不同的帶寬&#xff08;限速&#xff09;配置地址組時&#xff0c;其輸入格式為A.B.C.D-A.B.C.E&#xff0c;例如&#xff1a;192.168.1.1-192.168.1.250

python3基礎3--數據類型--數據運算--表達式if -else-while-for

一、python3 數據類型 1.1 數字例如&#xff1a;1,2,3,4等1.2 int&#xff08;整型&#xff09; 在32位機器上&#xff0c;整數的位數為32位&#xff0c;取值范圍為-2**31&#xff5e;2**31-1&#xff0c;即-2147483648&#xff5e;2147483647在64位系統上&#xff0c;整數的位…

spark java教程_(Spark)學習進度十四(Spark之Java獨立應用編程)

環境如下:(更新了林子雨教程中不可使用的部分) Hadoop 2.6.0以上 java JDK 1.7以上 Spark 3.0.0-preview2 二、java獨立應用編程(在下載依賴jar包的過程中如遇到卡頓現象可以Ctrl+C停止下載,然后重新執行本條命令即可繼續下載相應的依賴jar包) 1、安裝maven ubuntu中沒有自帶…

nowcoderD Xieldy And His Password

題意:一個01序列,長度1e6,問有多少子串十進制是3的倍數 題解:DP[i][j]代表前i個并且以i為結尾,且十進制%3j的串的個數 #include<bits/stdc.h> #define maxn 1001000 using namespace std; char s[maxn]; long long dp[maxn][3], sum; int main(){while(~scanf("%s&q…

3D電視,你知道多少?

1.3D電視常見知識 系統概述篇 1、 什么是3D電視&#xff1f; 答&#xff1a;3D電視是一種能夠模擬實際景物的真實空間關系的新型電視&#xff0c;它利用人眼的視覺特性產生立體感&#xff0c;讓觀眾感受到觀看的影像是具有深度特性的三維立體場景&#xff0c;觀眾對延伸于屏幕…

testng.xml文件配置

TestNG的DTD檢查文件&#xff1a;http://testng.org/testng-1.0.dtd.php <?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!--suite&#xff08;測試套件&#xff09;為根…

什么是分組轉發

分組轉發(forwarding)是指在互聯網絡中路由器轉發IP分組的物理傳輸過程與數據報轉發機制。根據分組的目的Ip地址與源Ip地址是否屬于同一個子網可分為直接轉發和間接轉發。 是直接轉發還是間接轉發&#xff0c;路由器需要根據分組的目的IP地址和源IP地址是否屬于同一網絡判斷。目…

java 棧 先進后出_數據結構: 先進后出——堆棧

棧是一種常用的數據結構&#xff0c;在生活中經常遇到這樣的例子&#xff0c;如鐵路調度站。本節將詳細介紹堆棧的實現過程。算法點撥(順序棧)棧是一種重要的數據結構。從數據結構的角度看&#xff0c;棧也是線性表&#xff0c;其特殊性在于棧的基本操作是線性表操作的子集&…

Spring Boot—07應用application.properties中的配置

方法1Value("${test.msg}") private String msg;方法2Autowired private Environment env; String value env.getProperty("test.msg");方法3RequestMapping(path"/${query.all}.json", methodRequestMethod.GET) ResponseBody public List&…

skip與direct模式區別 ,他們與CBP的關系

1 CBP表示殘差的編碼狀態,CBP一共6bit&#xff0c;低4位表示4個亮度8x8塊,第4位表示U,第五位表示V,如果相應的位為"1", 表示此塊有殘差系數,反之沒有殘差,此宏塊沒有被編碼.2 direct 是幀間宏塊的一種預測模式&#xff0c;而不是宏塊類型&#xff0c;而 S…

程序的裝入和鏈接過程

從用戶放入源程序進入操作系統到相應的裝程序在機器上運行&#xff0c;所經歷的主要階段有編譯階段 鏈接階段 裝入階段 和運行階段

[零基礎學JAVA]Java SE應用部分-34.Java常用API類庫

本季目標1、StringBuffer類 2、Runtime 類 3、包裝類與JDK 1.5的新特性——泛型 4、日期的操作類 5、Math類 6、Random類1、StringBuffer&#xff08;重點&#xff09; String 類的時候說過&#xff1a;String 類的內容一旦聲明則不可改變&#xff0c;改變的只是其地址。…

我所理解的機器學習

各位請移步到【http://www.cnblogs.com/cchHers/p/8945908.html】轉載于:https://www.cnblogs.com/cchHers/p/8933042.html

protobuf java文檔_Java中使用Protobuf

gradle依賴庫&#xff1a;implementation com.google.protobuf:protobuf-java:3.4.0implementation com.google.protobuf:protobuf-java-util:3.4.00.編寫.proto文件&#xff0c;編譯生成對應Java源文件&#xff1a;syntax "proto2";option java_generic_services …

python 數組和列表的區別

Python沒有數組&#xff1a; 只有元組(tuple)和列表(list)&#xff1b;元組一旦創建不可改變&#xff0c;例如&#xff1a;aatuple(1,2,3)&#xff1b;元組不能追加(append)元素&#xff0c;彈出(pop)元素等&#xff1b;只能對元組中的元素進行索引aa[0]&#xff0c;不能對其中…

內存空間 邏輯地址空間 相對地址 絕對地址

內存空間&#xff08;物理空間或絕對空間&#xff09;&#xff1a;由一系列存儲單元所限定 的地址范圍。 邏輯地址空間&#xff08;地址空間&#xff09;&#xff1a;由程序中邏輯地址組成的地址范圍。 相對地址&#xff08;邏輯地址&#xff09;&#xff1a;用戶程序經編譯后…

多租戶表設計

2019獨角獸企業重金招聘Python工程師標準>>> multi-tenant-databases-in-the-cloudtips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases團隊開發框架實戰—多租戶支持轉載于:https://my.oschina.net/yangjiandong/blog/1612626

java 讀取webapp文件_在Java Webapp和Java Normal應用中讀取公共外部屬性文件

但是&#xff0c;我們有以下一些特殊要求&#xff0c;Webapp將部署到tomcat。格式為.jar的普通Java應用程序將放在/ myapp文件夾下myappConfig.property文件將放置在/ myapp下客戶端計算機上的目錄結構/myapp/myapp.jar/assests/myappConfig.property/tomcat/webapps/myapp.war…

CSS實現樹形結構 + js加載數據

看到一款樹形結構&#xff0c;比較喜歡它的樣式&#xff0c;就參照它的外觀自己做了一個&#xff0c;練習一下CSS。 做出來的效果如下&#xff1a; 拉莫小學 一年級 一班二班二年級三年級 一班二班三班樹的dom結構&#xff1a; <div class"tree"><ul><…