最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Bash中test命令的使用

 更新時(shí)間:2023年02月16日 14:50:01   作者:WongKyunban  
本文主要介紹了Bash中test命令的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

這個(gè)命令在if條件句中用得很多。test命令后都會(huì)跟一個(gè)表達(dá)式,作為它的參數(shù)。它有兩種寫法:

test EXPRESSION
[ EXPRESSION ]

test的執(zhí)行過程就是拿一個(gè)元素與另一個(gè)元素進(jìn)行比較。在網(wǎng)絡(luò)上找了一個(gè)很有意思的例子,用它來說明一下test命令的使用:

test 1 -eq 2 && echo "true" || echo "false"
  • 1:是用來作比較的第一個(gè)參數(shù)
  • -eq:這是具體的比較方法
  • 2:這是用來比較的第二個(gè)參數(shù)

如果比較的結(jié)果是true,打印true,否則打印false

我們可以通過$?拿到test的結(jié)果。如果表達(dá)式的值是false,則$?的值是1,否則就是0。

上面的語句與下同的表達(dá)是一樣的:

[ 1 -eq 2 ] && echo "true" || echo "false"

整型相關(guān)的表達(dá)式用到的兩個(gè)數(shù)據(jù)的比較方法如下:

  • -eq:等于 (equal to)
  • -ne:等于 (not equal to)
  • -gt:大于 (greater than)
  • -ge:大于或等于(greater than or equal to)
  • -lt:小于 (less than)
  • -le:小于或等于(less than or equal to)
#!/usr/bin/env bash

test 1 -eq 2 && echo "true" || echo "false"
test 1 -ne 2 && echo "true" || echo "false"
test 1 -gt 2 && echo "true" || echo "false"
test 1 -ge 2 && echo "true" || echo "false"
test 1 -lt 2 && echo "true" || echo "false"
test 1 -le 2 && echo "true" || echo "false"

[ 1 -eq 2 ] && echo "true" || echo "false"
[ 1 -ne 2 ] && echo "true" || echo "false"
[ 1 -gt 2 ] && echo "true" || echo "false"
[ 1 -ge 2 ] && echo "true" || echo "false"
[ 1 -lt 2 ] && echo "true" || echo "false"
[ 1 -le 2 ] && echo "true" || echo "false"

shell提供了字符串比較相關(guān)的表達(dá)式:

  • -n <string>: 字符串長度不為零
  • -z <string>: 字符串長度為零
  • <string>: 字符串值非零,與 -n <string>等價(jià)
  • <string1> = <string2>: 兩個(gè)字符串是否相等
  • <string1> != <string2>: 兩個(gè)字符串是否不相等

針對(duì)字符串,shell提供了這些方便使用的表達(dá)式。比如說:-n <string>這個(gè)表達(dá)式就是將字符串長度與0作比較。其他依次類推。

test -n string1 && echo "true" || echo "false"
test -z string1 && echo "true" || echo "false"
test string1 && echo "true" || echo "false"
test string1=string2 && echo "true" || echo "false"
test string1!=string2 && echo "true" || echo "false"

[ -n string1 ] && echo "true" || echo "false"
[ -z string1 ] && echo "true" || echo "false"
[ string1 ] && echo "true" || echo "false"
[ string1=string2 ] && echo "true" || echo "false"
[ string1!=string2 ] && echo "true" || echo "false"

shell也提供了與文件相關(guān)的比較表達(dá)式:

  • <file1> -ef <file2>: 兩個(gè)文件是否有相似的device和inode編號(hào)(這些概念在Linux相關(guān)的知識(shí)可以了解到。)
  • <file1> -nt <file2>:通過比較文件的修改日期,判斷file1是否比file2要新。(nt :newer than)
  • <file1> -ot <file2>:通過比較文件的修改日期,判斷file1是否比file2要舊。(ot :older than)
  • -e <file>:文件是否存在(exists)
  • -f <file>:文件存在且是一個(gè)常規(guī)文件(file)
  • -d <file>:文件存在且是一個(gè)目錄(directory)
  • -r <file>:文件存在且有讀權(quán)限(read)
  • -w <file>:文件存在且有寫權(quán)限(write)
  • -x <file>:文件存在且有執(zhí)行權(quán)限 (execute)
  • -s <file>:文件存在且文件大小大于0(size)
  • -S <file>:文件存在且文件是一個(gè)socket
  • -O <file>:文件存在且文件所有者是有效的用戶ID(owner)
  • -G <file>:文件存在且文件所有者是有效的用戶組ID(group)
  • -h <file>:文件存在且是一個(gè)符號(hào)連接文件(hard)
  • -L <file>:文件存在且是一個(gè)符號(hào)連接文件(link)
  • -b <file>:文件存在且是一個(gè)特殊塊文件(block)
  • -c <file>:文件存在且是一個(gè)特殊字符文件(character)
#!/usr/bin/env bash

test -e /bin/bash && echo $? || echo $?
test -f /bin/bash && echo $? || echo $?
test -d /bin/bash && echo $? || echo $?
test -r /bin/bash && echo $? || echo $?
test -w /bin/bash && echo $? || echo $?
test -x /bin/bash && echo $? || echo $?
test -s /bin/bash && echo $? || echo $?
test -S /bin/bash && echo $? || echo $?
test -O /bin/bash && echo $? || echo $?
test -G /bin/bash && echo $? || echo $?
test -h /bin/bash && echo $? || echo $?
test -L /bin/bash && echo $? || echo $?
test -b /bin/bash && echo $? || echo $?
test -c /bin/bash && echo $? || echo $?

#!/usr/bin/env bash

[ -e /bin/bash ] && echo $? || echo $?
[ -f /bin/bash ] && echo $? || echo $?
[ -d /bin/bash ] && echo $? || echo $?
[ -r /bin/bash ] && echo $? || echo $?
[ -w /bin/bash ] && echo $? || echo $?
[ -x /bin/bash ] && echo $? || echo $?
[ -s /bin/bash ] && echo $? || echo $?
[ -S /bin/bash ] && echo $? || echo $?
[ -O /bin/bash ] && echo $? || echo $?
[ -G /bin/bash ] && echo $? || echo $?
[ -h /bin/bash ] && echo $? || echo $?
[ -L /bin/bash ] && echo $? || echo $?
[ -b /bin/bash ] && echo $? || echo $?
[ -c /bin/bash ] && echo $? || echo $?

shell提供了上面這些方便的表達(dá)式,我們就少做了很多功夫。

所以,現(xiàn)在看來test很簡單,但是很有用。因?yàn)閟hell腳本里會(huì)出現(xiàn)很多條件語句,test會(huì)用到很多。

到此這篇關(guān)于Bash中test命令的使用的文章就介紹到這了,更多相關(guān)Bash test命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Linux Shell獲取文件夾下的文件名方法

    Linux Shell獲取文件夾下的文件名方法

    今天小編就為大家分享一篇Linux Shell獲取文件夾下的文件名方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • bash腳本編程學(xué)習(xí)之算術(shù)運(yùn)算與文件查找

    bash腳本編程學(xué)習(xí)之算術(shù)運(yùn)算與文件查找

    算數(shù)運(yùn)算在每個(gè)編程語言里面是最基本的功能,在bash里面也是。下面這篇文章就給大家詳細(xì)介紹了腳本編程bash中的算術(shù)運(yùn)算與文件查找,文中還給出了多道練習(xí)題和答案,有需要的朋友們可以參考借鑒,下面來一起看看吧。
    2016-12-12
  • 詳解Linux中atime,mtime,ctime的使用場(chǎng)景

    詳解Linux中atime,mtime,ctime的使用場(chǎng)景

    這篇文章主要介紹了Linux的三個(gè)時(shí)間atime,mtime,ctime詳細(xì)說明與使用場(chǎng)景,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起了解一下
    2022-10-10
  • sed模式空間和暫存空間的區(qū)別

    sed模式空間和暫存空間的區(qū)別

    很多朋友對(duì)sed模式空間和暫存空間的區(qū)別不是很清楚,這里簡單的介紹下,方便需要的朋友
    2013-01-01
  • linux 命令每天必學(xué)之tar命令

    linux 命令每天必學(xué)之tar命令

    這篇文章主要介紹了linux 命令每天必學(xué)之tar命令,需要的朋友可以參考下
    2015-11-11
  • linux上搭建solr的操作方法(用tomcat部署)

    linux上搭建solr的操作方法(用tomcat部署)

    下面小編就為大家分享一篇linux上搭建solr的操作方法(用tomcat部署),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • Linux?常用nvidia-smi命令詳解(最新推薦)

    Linux?常用nvidia-smi命令詳解(最新推薦)

    NVIDIA-smi?在?Linux?上附帶?NVIDIA?GPU?顯示驅(qū)動(dòng)程序,以及?64?位?Windows?Server?2008?R2?和?Windows?7,這篇文章主要介紹了Linux?常用nvidia-smi命令詳解,需要的朋友可以參考下
    2023-01-01
  • Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令詳解

    Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令詳解

    Linux 下一堆各式各樣的壓縮文件名:.gz、.tar.gz、tgz、bz2、.Z、.tar 等眾多的壓縮文件名,本文重點(diǎn)介紹Linux的打包壓縮與解壓縮---tar、xz、zip、unzip命令,感興趣的朋友一起看看吧
    2024-02-02
  • Git代碼提交流程及git命令匯總(基礎(chǔ)篇)

    Git代碼提交流程及git命令匯總(基礎(chǔ)篇)

    git 現(xiàn)在的火爆程度非同一般,它被廣泛地用在大型開源項(xiàng)目,團(tuán)隊(duì)開發(fā),以及獨(dú)立開發(fā)者,甚至學(xué)生之中。這篇文章給大家介紹一些Git代碼提交流程和Git基礎(chǔ)命令的使用,需要的朋友參考下吧
    2017-12-12
  • 詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟

    這篇文章主要介紹了詳解Linux 操作系統(tǒng)下安裝rpm包的方法步驟的相關(guān)資料,需要的朋友可以參考下
    2015-11-11

最新評(píng)論

胶南市| 罗江县| 汝城县| 普兰县| 襄城县| 瑞丽市| 焦作市| 安宁市| 原阳县| 通许县| 广德县| 准格尔旗| 元朗区| 奎屯市| 临邑县| 南和县| 台山市| 北流市| 遂溪县| 甘泉县| 嵊州市| 滦南县| 大丰市| 乐至县| 扎鲁特旗| 剑河县| 舟曲县| 西贡区| 霍林郭勒市| 鄂托克旗| 从化市| 澄城县| 太原市| 牡丹江市| 衡阳县| 赤水市| 长葛市| 禹城市| 闸北区| 财经| 洛扎县|