国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在Bash中使用[方括號](二)

系統 Linux
我們繼續(xù)來看方括號的用法,它們甚至還可以在 Bash 當中作為一個命令使用。在前一篇文章當中,我們介紹了方括號在命令行中可以用于通配操作,如果你已經讀過前一篇文章,就可以從這里繼續(xù)了。

[[263170]]

我們繼續(xù)來看方括號的用法,它們甚至還可以在 Bash 當中作為一個命令使用。

歡迎回到我們的方括號專題。在前一篇文章當中,我們介紹了方括號在命令行中可以用于通配操作,如果你已經讀過前一篇文章,就可以從這里繼續(xù)了。

方括號還可以以一個命令的形式使用,就像這樣:

  1. [ "a" = "a" ]

上面這種 [ ... ] 的形式就可以看成是一個可執(zhí)行的命令。要注意,方括號內部的內容 "a" = "a" 和方括號 [] 之間是有空格隔開的。因為這里的方括號被視作一個命令,因此要用空格將命令和它的參數隔開。

上面這個命令的含義是“判斷字符串 "a" 和字符串 "a" 是否相同”,如果判斷結果為真,那么 [ ... ] 就會以狀態(tài)碼status code 0 退出,否則以狀態(tài)碼 1 退出。在之前的文章中,我們也有介紹過狀態(tài)碼的概念,可以通過 $? 變量獲取到最近一個命令的狀態(tài)碼。

分別執(zhí)行

  1. [ "a" = "a" ]
  2. echo $?

以及

  1. [ "a" = "b" ]
  2. echo $?

這兩段命令中,前者會輸出 0(判斷結果為真),后者則會輸出 1(判斷結果為假)。在 Bash 當中,如果一個命令的狀態(tài)碼是 0,表示這個命令正常執(zhí)行完成并退出,而且其中沒有出現錯誤,對應布爾值 true;如果在命令執(zhí)行過程中出現錯誤,就會返回一個非零的狀態(tài)碼,對應布爾值 false。而 [ ... ] 也同樣遵循這樣的規(guī)則。

因此,[ ... ] 很適合在 if ... thenwhileuntil 這種在代碼塊結束前需要判斷是否達到某個條件結構中使用。

對應使用的邏輯判斷運算符也相當直觀:

  1. [ STRING1 = STRING2 ] => 檢查字符串是否相等
  2. [ STRING1 != STRING2 ] => 檢查字符串是否不相等
  3. [ INTEGER1 -eq INTEGER2 ] => 檢查整數 INTEGER1 是否等于 INTEGER2
  4. [ INTEGER1 -ge INTEGER2 ] => 檢查整數 INTEGER1 是否大于等于 INTEGER2
  5. [ INTEGER1 -gt INTEGER2 ] => 檢查整數 INTEGER1 是否大于 INTEGER2
  6. [ INTEGER1 -le INTEGER2 ] => 檢查整數 INTEGER1 是否小于等于 INTEGER2
  7. [ INTEGER1 -lt INTEGER2 ] => 檢查整數 INTEGER1 是否小于 INTEGER2
  8. [ INTEGER1 -ne INTEGER2 ] => 檢查整數 INTEGER1 是否不等于 INTEGER2
  9. 等等……

方括號的這種用法也可以很有 shell 風格,例如通過帶上 -f 參數可以判斷某個文件是否存在:

  1. for i in {000..099}; \
  2. do \
  3. if [ -f file$i ]; \
  4. then \
  5. echo file$i exists; \
  6. else \
  7. touch file$i; \
  8. echo I made file$i; \
  9. fi; \
  10. done

如果你在上一篇文章使用到的測試目錄中運行以上這串命令,其中的第 3 行會判斷那幾十個文件當中的某個文件是否存在。如果文件存在,會輸出一條提示信息;如果文件不存在,就會把對應的文件創(chuàng)建出來。最終,這個目錄中會完整存在從 file000file099 這一百個文件。

上面這段命令還可以寫得更加簡潔:

  1. for i in {000..099};\
  2. do\
  3. if [ ! -f file$i ];\
  4. then\
  5. touch file$i;\
  6. echo I made file$i;\
  7. fi;\
  8. done

其中 ! 運算符表示將判斷結果取反,因此第 3 行的含義就是“如果文件 file$i 不存在”。

可以嘗試一下將測試目錄中那幾十個文件隨意刪除幾個,然后運行上面的命令,你就可以看到它是如何把被刪除的文件重新創(chuàng)建出來的。

除了 -f 之外,還有很多有用的參數。-d 參數可以判斷某個目錄是否存在,-h 參數可以判斷某個文件是不是一個符號鏈接。可以用 -G 參數判斷某個文件是否屬于某個用戶組,用 -ot 參數判斷某個文件的***更新時間是否早于另一個文件,甚至還可以判斷某個文件是否為空文件。

運行下面的幾條命令,可以向幾個文件中寫入一些內容:

  1. echo "Hello World" >> file023
  2. echo "This is a message" >> file065
  3. echo "To humanity" >> file010

然后運行:

  1. for i in {000..099};\
  2. do\
  3. if [ ! -s file$i ];\
  4. then\
  5. rm file$i;\
  6. echo I removed file$i;\
  7. fi;\
  8. done

你就會發(fā)現所有空文件都被刪除了,只剩下少數幾個非空的文件。

如果你還想了解更多別的參數,可以執(zhí)行 man test 來查看 test 命令的 man 手冊(test[ ... ] 的命令別名)。

有時候你還會看到 [[ ... ]] 這種雙方括號的形式,使用起來和單方括號差別不大。但雙方括號支持的比較運算符更加豐富:例如可以使用 == 來判斷某個字符串是否符合某個模式pattern,也可以使用 <> 來判斷兩個字符串的出現順序。

可以在 Bash 表達式文檔中了解到雙方括號支持的更多運算符。

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2019-04-15 11:10:34

Bash方括號命令行

2023-01-13 12:37:43

Bashshell花括號

2020-10-13 19:04:58

Bash信號捕獲Shell腳本

2023-07-20 15:37:50

Bash數組

2022-12-02 14:30:24

Bash腳本數組

2023-07-12 14:13:03

BashLinux

2022-12-14 10:08:00

BashLinux

2022-01-16 07:48:33

腳本Bash 工具

2023-03-14 08:17:40

Bash編程語言

2020-04-09 10:18:51

Bash循環(huán)Linux

2022-11-23 08:14:42

bash 腳本test 命令

2020-02-05 16:37:06

方括號Python方法

2020-02-05 14:17:48

Python數據結構JavaScript

2019-02-12 15:47:42

Bash尖括號命令

2019-03-18 15:53:11

BashLinux花括號

2018-12-14 10:00:16

BashLinux命令

2023-04-12 15:25:09

Bytrace鴻蒙

2009-06-25 16:49:24

Hibernate

2013-12-13 17:21:14

Lua腳本語言

2023-11-17 12:04:39

GORM并發(fā)
點贊
收藏

51CTO技術棧公眾號

欧美亚洲在线播放| 欧美色偷偷大香| 国产精品久久久久久一区二区| 奇米888一区二区三区| 女女色综合影院| 国产欧美视频一区二区| 最近免费中文字幕视频2019| av免费在线网站| 日韩精品亚洲一区| 91精品国产综合久久香蕉| 精品综合久久88少妇激情| 亚洲欧美乱综合| 97精品视频在线播放| 色播五月综合网| 成人福利视频网站| 国产精品8888| 韩国成人精品a∨在线观看| 日韩激情网站| 日本一区二区不卡高清更新| 日韩久久精品| 欧美在线精品免播放器视频| 亚洲激情综合| 日韩av成人在线观看| 狠狠躁夜夜躁人人躁婷婷91| 国产精品第七十二页| 成人性生交大片免费看中文视频| 伊人夜夜躁av伊人久久| 日本人视频jizz页码69| 久久综合五月天婷婷伊人| 欧美中文在线字幕| 免费成人结看片| 国产精品美女免费视频| 欧美精选在线| 一区二区在线免费视频| 欧产日产国产精品视频| 亚洲少妇中文在线| 国产一区二区三区黄网站| 欧美午夜视频一区二区| 国产女人在线观看| 丁香婷婷深情五月亚洲| 欧美最猛黑人xxxx黑人猛叫黄| 国产精品亚洲二区| 国产二区不卡| 久久国产剧场电影| 国产免费黄视频| 亚洲国产成人精品女人| 亚洲国产精品人久久电影| 成人性教育av免费网址| 无吗不卡中文字幕| avav在线播放| 欧美极品少妇xxxxⅹ高跟鞋 | 婷婷亚洲五月色综合| 91亚洲精品在线观看| 久久资源在线| 久久国产精品网| 亚洲综合一二区| 第九色区av在线| 亚洲精品久久久久中文字幕二区 | 日韩精品一区国产| 国产精品一区二区在线| 免费看的黄色欧美网站| 欧美在线观看视频免费| 亚洲欧美偷拍三级| 亚洲一卡二卡三卡四卡无卡网站在线看| 韩国av一区二区三区在线观看| 天天操,天天操| 欧美日韩国产一级| 亚洲精品一区av| 91嫩草视频在线观看| 国产午夜精品一区在线观看 | 欧美精品97| 在线观看三级网站| 久久香蕉国产| 亚洲精品视频一二三| 国产三级久久久| 精品黄色免费中文电影在线播放| 日韩网站免费观看| 精品电影一区| 超碰在线人人爱| 欧美成人在线直播| 国产探花一区二区| 日韩成人三级视频| 欧美日韩一区小说| 日韩在线影视| 精品国产一区二区三区无码| 欧美日韩加勒比精品一区| 高清av一区| 久久99精品久久久久久水蜜桃| 91在线porny国产在线看| 日韩精品成人一区二区在线观看| 久久综合狠狠综合久久综合88 | 天天干在线视频论坛| 欧美重口另类videos人妖| 久久国产精品免费| 国产午夜精品一区理论片| 国产做受高潮69| 中文字幕在线二区| 国产精品免费丝袜| 成年人黄色片视频| 欧美一区三区二区| 国产一区二区三区四区二区| 精品无码一区二区三区在线| 欧美一区二区日韩一区二区| 欧美顶级大胆免费视频| 黄色免费网址大全| 久久久久9999亚洲精品| 992tv快乐视频| 在线这里只有精品| 亚洲日产av中文字幕| 成年人网站免费视频| 亚洲激情视频在线| 在线精品一区二区| h动漫在线视频| 午夜剧场成人观在线视频免费观看| 极品尤物av久久免费看| 在线播放麻豆| 国产日韩欧美日韩| 亚洲欧美一区二区三区极速播放| 黄色的视频在线免费观看| 国模叶桐国产精品一区| 国产精品1区二区.| 免费高潮视频95在线观看网站| 欧美另类一区| 免费在线看成人av| 日本黄色播放器| 日本丰满少妇一区二区三区| 色综合久久网| 久草影视在线| 91精品国产色综合久久| 久久精品免费一区二区三区| 天天噜天天色| 欧美午夜精品久久久久久久| 最新国产精品视频| 福利视频网站| 日本亚洲欧洲色α| 亚洲一二三专区| av午夜在线| 日韩成人黄色av| 日韩成人免费看| av福利在线导航| 午夜在线视频免费观看| 国产一区二区三区视频| 99在线精品视频| 丁香五月缴情综合网| 色姑娘综合网| 精品卡一卡二卡三卡四在线| 精品一区二区三区免费播放| 成人va天堂| 国产97在线观看| 国产精品久久久久天堂| 欧美男男gaytwinkfreevideos| 中文字幕在线视频免费观看| 91免费看网站| 精品国产一区二区三区四区四| 亚洲三级av| 三上悠亚av一区二区三区| 国产精品国产三级国产aⅴ9色| 欧美性xxxxx| 日韩国产高清在线| 成人豆花视频| 最色在线观看| 天天综合色天天综合色hd| 亚洲图片欧美日产| 国产欧美一区视频| 综合视频在线| 一个人www视频在线免费观看| 国产精品女人网站| 欧美日韩一区二区在线观看| 久久99精品久久久久| 中文字幕一区二区三区日韩精品 | 日韩免费在线播放| 欧美性xxxxxxxx| aaa国产精品视频| 亚洲精品乱码久久久久久蜜桃91| 日韩精品在线第一页| 久久精品一二三| 伊人狠狠色j香婷婷综合| 韩国久久久久久| 男女午夜网站| 欧美极品视频一区二区三区| 久久精品国产欧美激情| 亚洲不卡一区二区三区| 国内精品免费**视频| 精品久久91| www.夜夜爱| 国产激情999| 成人精品小蝌蚪| 99精品国产一区二区三区| 一根才成人网| 簧片在线观看| 久久久久久久久久久久久国产| 国产z一区二区三区| 亚洲国内高清视频| 午夜天堂影视香蕉久久| 懂色中文一区二区在线播放| √天堂8在线网| wwwwxxxx日韩| 日本亚洲自拍| 国产精品久久久久久久久久东京 | 91视频最新入口|