sh腳本筆記2

test條件測試

語法

條件測試語法說明
語法1:test <測試表達式>這是利用test命令進行條件測試表達式的方法。test命令和“<測試表達式>”之間至少有一個空格
語法2:[ <測試表達式> ]這是通過[](單中括號)進行條件測試表達式的方法,和test命令的用法相同,這是老男孩推薦的方法。[]的邊界和內容之間至少有一個空格
語法3:[[ <測試表達式> ]]這是通過[[]](雙中括號)進行條件測試表達式的方法,是比test和[]更新的語法格式。[[]]的邊界和內容之間至少有一個空格
語法4:((<測試表達式>))這是通過(())(雙小括號)進行條件測試表達式的方法,一般用于if語句里。(())(雙小括號)兩端不需要有空格

參數

1. 關于某個文件名的類型偵測(存在與否),如:test -e filename
-e 該【文件名】是否存在?(常用)(不區分目錄和文件)
-f 該【文件名】是否為文件(file)?(常用)
-d 該【文件名】是否為目錄(directory)?(常用)
-b 該【文件名】是否為一個block device裝置?
-c 該【文件名】是否為一個character device裝置?
-S 該【文件名】是否為一個Socket文件?
-p 該【文件名】是否為一個FIFO(pipe)文件?
-L 該【文件名】是否為一個連結檔?2.關于文件的權限偵測,如:test -r filename
-r 偵測該文件名是否具有【可讀】的屬性?
-w 偵測該文件名是否具有【可寫】的屬性?
-x 偵測該文件名是否具有【可執行】的屬性?
-u 偵測該文件名是否具有【SUID】的屬性?
-g 偵測該文件名是否具有【SGID】的屬性?
-k 偵測該文件名是否具有【Sticky bit】的屬性?
-s 偵測該文件名是否具有【非空白文件】?3.兩個文件之間的比較,如:test file1 -nt file2
-nt (newer than)判斷file1是否比file2新
-ot (older than)判斷file1是否比file2舊
-ef 判斷file1與file2是否為同一文件,可用在判斷hand link的判定上。主要意義在判定,兩個文件是否均指向同一個inode哩!4.關于兩個整數之間的判定,例如:test n1 -eq n2
-eq 兩數值相等(equal)
-ne 兩數值不等(not equal)
-gt n1大于n2(greater than)
-lt n1小于n2(less than)
-ge n1大于等于n2(greater than or equal)
-le n1小于等于n2(less than or equal)5.判定字符串的數據
test -z string 判定字符串是否為0?若string為空字符串,則為true
test -n string 判定字符串是否非為0?若string為空字符串,則為false
注:-n 亦可省略
test str1 = str2 判定str1是否等于str2,若相等,則回傳true
test str1 != str2 判定str1是否不等于str2,若相等,則回傳false6.多重條件判定,例如:test -r filename -a -x filename
-a (and)兩狀況同時成立!例如:test -r file -a -x file,則file同時具有r與x權限時,才回傳true
-o (or)兩狀況任何一個成立!例如:test -r file -o -x file,則file具有r或x權限時,就可回傳true
! 反相狀態,如test ! -x file,當file不具有x時,回傳true

注意:
在條件測試中使用變量,必須添加雙引號

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

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

相關文章

將exe文件添加到注冊表中,實現開機時自動運行

目錄 一、前言 二、代碼 三、使用步驟 1.編譯生成exe文件、 2.以管理員身份運行代碼 3.打開注冊表&#xff0c;驗證結果 一、前言 在Windows操作系統中&#xff0c;將exe文件的路徑添加到注冊表下&#xff0c;主要用于實現程序的開機自動運行功能。 注冊表路徑為&#xf…

白騎士的C語言教學基礎篇 1.3 控制流

系列目錄 上一篇&#xff1a;白騎士的C語言教學基礎篇 1.2 C語言基礎語法 在這一節中&#xff0c;我們將介紹C語言中的控制流結構&#xff0c;包括條件語句、循環語句以及循環控制語句。這些結構允許我們根據不同的條件執行不同的代碼塊&#xff0c;從而使程序更具靈活性和功能…

Python中的并發編程(5)PyQt 多線程

PyQt 多線程 1 卡住的計時器 我們定義了一個計時器&#xff0c;每秒鐘更新一次顯示的數字。此外我們定義了一個耗時5秒的任務oh_no&#xff0c;和按鈕“危險”綁定。 當我們點擊“危險”按鈕時&#xff0c;程序去執行oh_no&#xff0c;導致顯示停止更新了。 import sys im…

Aspose.PDF功能演示:在程序中合并 JPG 文件

Aspose.PDF 是一款高級PDF處理API&#xff0c;可以在跨平臺應用程序中輕松生成&#xff0c;修改&#xff0c;轉換&#xff0c;呈現&#xff0c;保護和打印文檔。無需使用Adobe Acrobat。此外&#xff0c;API提供壓縮選項&#xff0c;表創建和處理&#xff0c;圖形和圖像功能&am…

Kile鐘優化等級講解

這里直接說說kile的優化等級: 這里有4個等級,分別為:-O0、-O1、-O2、-O3 為什么要進行編譯優化? 主要目的: 1. 提高代碼執行的速度; 2. 減少內存占用; 3. 降低能耗,延長電池壽命; 4. 消除代碼中冗余和不必要的代碼,提高程序穩定性和可靠性。 Kile等級描述: -O0:這…

leetcode-21-回溯-全排列及其去重

一、[46]全排列 給定一個 沒有重復 數字的序列&#xff0c;返回其所有可能的全排列。 示例: 輸入: [1,2,3]輸出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 其中&#xff0c;不需要使用startIndex used數組&#xff0c;其實就是記錄此時path里都有哪些元素…

【圖論】200. 島嶼問題

200. 島嶼問題 難度&#xff1a;中等 力扣地址&#xff1a;https://leetcode.cn/studyplan/top-100-liked/ 問題描述 給你一個由 1&#xff08;陸地&#xff09;和 0&#xff08;水&#xff09;組成的的二維網格&#xff0c;請你計算網格中島嶼的數量。 島嶼總是被水包圍&…

一個專為Android平臺設計的高度可定制的日歷庫

大家好&#xff0c;今天給大家分享一個高度可定制的日歷庫kizitonwose/Calendar。 Calendar專為Android平臺設計&#xff0c;支持RecyclerView和Compose框架。它提供了豐富的功能&#xff0c;允許開發者根據需求定制日歷的外觀和功能。 項目介紹 此庫是開發Android應用時&…

大型語言模型評估調查

原文鏈接&#xff1a;A Survey on Evaluation of Large Language Models | ACM Transactions on Intelligent Systems and Technology 本文從三個關鍵維度&#xff1a;評價什么、在哪里評價和如何評價&#xff0c;對這些 LLMs 評價方法進行了全面回顧。 首先&#xff0c;我們…

第十四屆藍橋杯省賽C++A組F題【買瓜】題解(AC)

70pts 題目要求我們在給定的瓜中選擇一些瓜&#xff0c;可以選擇將瓜劈成兩半&#xff0c;使得最后的總重量恰好等于 m m m。我們的目標是求出至少需要劈多少個瓜。 首先&#xff0c;我們注意到每個瓜的重量最多為 1 0 9 10^9 109&#xff0c;而求和的重量 m m m 也最多為…

C++ 徹底搞懂指針(1)

當有人問起,什么是指針時,我會毫不猶豫地回答,指針變量存放的是地址!然后呢,好像也說不出什么了,今天就再來詳細看一下指針吧。 本文提綱如下: ? 指針變量 ? 未初始化的指針 ? NULL ? void指針 ? 指針的指針 首先要明白幾點: ? 每個字節都有…

用OpenAI接口給女朋友手搓AI小助理,她說要獎勵我,結果……

前言 最近&#xff0c;我那財經系的小女友迎來了考試周&#xff0c;她的復習資料已經堆得像珠穆朗瑪峰一樣高。壓力山大的她不斷讓我幫她整理這些資料&#xff0c;還頻頻向我傾訴她的苦水。雖然我自己也挺忙的&#xff0c;但為了愛&#xff0c;我只能忍痛扛起這重擔。。。為了…

【C++】STL-priority_queue

目錄 1、priority_queue的使用 2、實現沒有仿函數的優先級隊列 3、實現有仿函數的優先級隊列 3.1 仿函數 3.2 真正的優先級隊列 3.3 優先級隊列放自定義類型 1、priority_queue的使用 priority_queue是優先級隊列&#xff0c;是一個容器適配器&#xff0c;不滿足先進先出…

Spring Boot配置文件properties/yml/yaml

一、Spring Boot配置文件簡介 &#xff08;1&#xff09;名字必須為application,否則無法識別。后綴有三種文件類型&#xff1a; properties/yml/yaml&#xff0c;但是yml和yaml使用方法相同 &#xff08;2&#xff09; Spring Boot 項?默認的配置文件為 properties &#xff…

【單片機畢業設計選題24041】-基于STM32的水質檢測系統

系統功能: 系統上電后顯示“歡迎使用水質檢測系統請稍后”兩秒后進入正常顯示頁面。 第一頁面第一行顯示“系統狀態信息”&#xff0c;第二行顯示溫度和PH值信息&#xff0c;第三行顯示 渾濁度信息&#xff0c;第四行顯示TDS值信息。 第一頁面下的按鍵操作&#xff1a; 短…

Kotlin中的類

類初始化順序 constructor 里的參數列表是首先被執行的&#xff0c;緊接著是 init 塊和屬性初始化器&#xff0c;最后是次構造函數的函數體。 主構造函數參數列表firstProperty 初始化第一個 init 塊secondProperty 初始化第二個 init 塊次構造函數函數體 class Example const…

英語動詞時態

英語動詞時態總結 動詞時態一般進行完成完成進行現在一般現在時態動詞原形/動詞原形s&#xff08;第三人稱單數&#xff09;eat/eats現在進行時態助動詞be的變位動詞的現在分詞am/is/are eating現在完成時態助動詞have的變位動詞的過去分詞has/have eaten現在完成進行時態have…

SSE代替輪詢?

什么是 SSE SSE&#xff08;Server-Sent Events&#xff0c;服務器發送事件&#xff09;&#xff0c;為特定目的而擴展的 HTTP 協議&#xff0c;用于實現服務器向客戶端推送實時數據的單向通信。如果連接斷開&#xff0c;瀏覽器會自動重連&#xff0c;傳輸的數據基于文本格式。…

力扣(2024.07.01)

1. 84——柱狀圖中最大的矩形 給定 n 個非負整數&#xff0c;用來表示柱狀圖中各個柱子的高度。每個柱子彼此相鄰&#xff0c;且寬度為 1 。 求在該柱狀圖中&#xff0c;能夠勾勒出來的矩形的最大面積。 標簽&#xff1a;棧&#xff0c;數組&#xff0c;單調棧&#xff08;目…

面試題--SpringBoot

SpringBoot SpringBoot 是什么(了解) 是 Spring 的子項目,主要簡化 Spring 開發難度,去掉了繁重配置,提供各種啟動器,可以 讓程序員很快上手,節省開發時間. SpringBoot 的優點(必會) SpringBoot 對上述 Spring 的缺點進行的改善和優化&#xff0c;基于約定優于配置的思想&am…