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

shell中if條件判斷的實(shí)現(xiàn)

 更新時(shí)間:2023年06月22日 10:43:27   作者:獵人在吃肉  
本文主要介紹了shell中if條件判斷的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1、if 的基本語法:

if [ command ];then
   符合該條件執(zhí)行的語句
elif [ command ];then
   符合該條件執(zhí)行的語句
else
   符合該條件執(zhí)行的語句
fi

2、字符串的判斷

字符串批較時(shí),變量一定要用 雙引號(hào)。

[ -z "str" ] 如果str的長(zhǎng)度為零,則為真 ,即判斷是否為空,空即是真;
[ -n "str" ] 如果str的長(zhǎng)度非零,則為真 ,即判斷是否為非空,非空即是真;
[ "str1" = "str2" ] 如果兩個(gè)字符串相同,則為真;
[ "str1" != "str2" ] 如果字符串不相同,則為真;
[ "str1" ]  如果字符串不為空,則為真,與-n類似。

示例:

if [ -z "$path" ]; then
    echo "head 請(qǐng)指定 path 的值" 1>&2    
fi
if [ "$opt" != "-" ]&&[ "$opt" != "+" ]; then
	echo "opt只能取值-或+" 1>&2
	exit 1;
fi

3、數(shù)值的判斷

數(shù)值的比較千萬不要使用大于號(hào)、小于號(hào),數(shù)值的比較只能使用 -eq 、-gt 等。

[ num1 -eq num2 ]      num1 和 num2 兩數(shù)相等為真 , =
[ num1 -ne num2 ]      num1 和 num2 兩數(shù)不等為真 ,!=
[ num1 -gt num2 ]      num1 大于 num1 為真 , >
[ num1 -ge num2 ]      num1 大于等于num2 為真, >=
[ num1 -lt num2 ]      num1 小于n um2 為真 , <
[ num1 -le num2 ]      num1 小于等于 num2 為真, <=

示例:

if [ ${num1} -gt ${num2} ]; then  
	echo "[相對(duì)目錄]的長(zhǎng)度應(yīng)該小于[文件路徑]的長(zhǎng)度"
	exit 1
fi

4、文件和目錄的判斷

[ -e file ] 如果 file 存在,則為真。
[ -d DIR ]  如果 file 存在,且是一個(gè)目錄,則為真。
[ -f file ] 如果 file 存在,且是一個(gè)普通文件,則為真。

[ -r file ] 如果 file 存在且是可讀的,則為真。
[ -w file ] 如果 file存在且是可寫的,則為真。
[ -x file ] 如果 file 存在且是可執(zhí)行的,則為真。

[ -b file ] 如果 file 存在,且是一個(gè)塊特殊文件,則為真。
[ -c file ] 如果 file 存在,且是一個(gè)字特殊文件,則為真。

[ -g file ] 如果 file 存在且已經(jīng)設(shè)置了SGID,則為真。
[ -k file ] 如果 file 存在且已經(jīng)設(shè)置了粘制位,則為真。
[ -p file ] 如果 file 存在且是一個(gè)名字管道(F如果O),則為真。

[ -s file ] 如果 file 存在且大小不為0,則為真。
[ -t FD ] 如果文件描述符 FD 打開且指向一個(gè)終端,則為真。
[ -u file ] 如果 file 存在且設(shè)置了SUID (set user ID),則為真。

[ -O file ] 如果 file 存在且屬有效用戶ID,則為真。
[ -G file ] 如果 file 存在且屬有效用戶組,則為真。
[ -L file ] 如果 file 存在且是一個(gè)符號(hào)連接,則為真。
[ -N file ] 如果 file 存在 and has been mod,如果ied since it was last read則為真。
[ -S file ] 如果 file 存在且是一個(gè)套接字,則為真。
[ file1 -ot file2 ] 如果 file1 比 file2 要老, 或者 file2 存在且 file1 不存,在則為真。
[ file1 -ef file2 ] 如果 file1 和 file2 指向相同的設(shè)備和節(jié)點(diǎn)號(hào),則為真。

5、復(fù)雜邏輯判斷

操作說明
-a
-o
!

示例1: 的使用

如果a>b 且 a< c

if (( a > b )) && (( a < c ))

或者

if [[ $a > $b ]] && [[ $a < $c ]]

或者

if [ $a -gt $b -a $a -lt $c ]

另外,“||“和”&&” 在 shell 里可以用,如下所示:

if [ a>b && a < c ]

示例2: 的使用

如果a>b或a < c

if (( a > b )) || (( a < c ))

或者

if [[ $a > $b ]] || [[ $a < $c ]]

或者

if [ $a -gt $b -o $a -lt $c ]

另外,“||“和”&&” 在 shell 里可以用,如下所示:

if [ a>b || a < c ]

5、舉例

#!/bin/bash
#echo -n "please input your score:"
#read score
#echo "input score is $ score "
read -p "please input a score:" score
echo -e "your score [$score] is judging by sys now"
if [ "$score" -ge "0" ]&&[ "$score" -lt "60" ];then
    echo "sorry,you are lost!"
elif [ "$score" -ge "60" ]&&[ "$score" -lt "85" ];then
    echo "just soso!"
elif [ "$score" -le "100" ]&&[ "$score" -ge "85" ];then
    echo "good job!"
else
    echo "input score is wrong , the range is [0-100]!"
fi

6、條件變量替換:

Bash Shell可以進(jìn)行變量的條件替換,既只有某種條件發(fā)生時(shí)才進(jìn)行替換,替換條件放在 {} 中.

(1) ${value:-word}

當(dāng)變量未定義或者值為空時(shí),返回值為word的內(nèi)容,否則返回變量的值。

(2) ${value:=word}

與前者類似,只是若變量未定義或者值為空時(shí),在返回word的值,同時(shí)將word賦值給value

(3) ${value:?message}

若變量以賦值的話,正常替換。否則,將消息message送到標(biāo)準(zhǔn)錯(cuò)誤輸出。(若此替換出現(xiàn)在Shell程序中,那么該程序?qū)⒔K止運(yùn)行)

(4) ${value:+word}

若變量以賦值的話,其值才用word替換,否則,不進(jìn)行任何替換。

(5) ${value:offset}${value:offset:length}

從變量中提取子串,這里 offset 和 length 可以是算術(shù)表達(dá)式。length 不指定時(shí),默認(rèn)為從offset 開始到結(jié)尾的長(zhǎng)度。

path="C:\Users\admin\AppData\Roaming"
echo ${path:4}
結(jié)果是 sers/admin/AppData/Roaming
path="C:\Users\admin\AppData\Roaming"
echo ${path:0:2}
結(jié)果是 C:
path="C:\Users\admin\AppData\Roaming"
echo ${path:0-7}
Roaming

(6) ${#value}

變量的字符個(gè)數(shù),長(zhǎng)度。

(7) ${value#pattern}${value##pattern}

去掉 value 中與 pattern 相匹配的部分,條件是value的開頭與pattern相匹配, # 與 ## 的區(qū)別在于一個(gè)是最短匹配模式 ,一個(gè)是最長(zhǎng)匹配模式。

(8) ${value%pattern} , ${value%%pattern}

于(7)類似,只是是從value的尾部于pattern相匹配, % 與 %% 的區(qū)別與 # 與 ##一樣

(9) ${value/pattern/string}${value//pattern/string}

進(jìn)行變量?jī)?nèi)容的替換,把與pattern匹配的部分替換為string的內(nèi)容, /與 // 的區(qū)別與上同。

path="C:\Users\admin\AppData\Roaming"
path=${path//'\'//}
echo $path

輸入結(jié)果是

C:/Users/admin/AppData/Roaming

到此這篇關(guān)于shell中if條件判斷的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)shell if條件判斷內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Shell腳本中引用、調(diào)用另一個(gè)腳本文件的2種方法

    Shell腳本中引用、調(diào)用另一個(gè)腳本文件的2種方法

    這篇文章主要介紹了Shell腳本中引用、調(diào)用另一個(gè)腳本文件的2種方法,本文介紹了兩種方法的語法,然后給出實(shí)際使用實(shí)例和一些要注意的地方,需要的朋友可以參考下
    2015-06-06
  • 使用shell腳本判斷文件后綴的方法實(shí)例

    使用shell腳本判斷文件后綴的方法實(shí)例

    這篇文章主要給大家介紹了關(guān)于如何使用shell腳本判斷文件后綴的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Impala-shell命令參數(shù)的實(shí)現(xiàn)

    Impala-shell命令參數(shù)的實(shí)現(xiàn)

    這篇文章主要介紹了Impala-shell命令參數(shù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 一個(gè)shell寫的ping函數(shù)

    一個(gè)shell寫的ping函數(shù)

    shell寫的ping腳本,可實(shí)現(xiàn)簡(jiǎn)單交互,供大家學(xué)習(xí)參考吧
    2013-02-02
  • linux中編寫自己的并發(fā)隊(duì)列類(Queue 并發(fā)阻塞隊(duì)列)

    linux中編寫自己的并發(fā)隊(duì)列類(Queue 并發(fā)阻塞隊(duì)列)

    這篇文章主要介紹了linux中編寫并發(fā)隊(duì)列類,功能有:并發(fā)阻塞隊(duì)列、有超時(shí)限制、有大小限制
    2013-12-12
  • Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例

    Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例

    這篇文章主要介紹了Linux 在Bash腳本中怎么關(guān)閉文件描述符的實(shí)例的相關(guān)資料,希望通過本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09
  • 寫一個(gè)shell腳本實(shí)現(xiàn)視頻處理

    寫一個(gè)shell腳本實(shí)現(xiàn)視頻處理

    Linux和Unix都擁有很多能夠處理圖像和視頻文件的應(yīng)用程序和工具,下面這篇文章主要給大家介紹了關(guān)于如何寫一個(gè)shell腳本來實(shí)現(xiàn)視頻處理的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • shell 安全腳本的實(shí)現(xiàn)

    shell 安全腳本的實(shí)現(xiàn)

    本文主要介紹了shell 安全腳本的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Linux查看系統(tǒng)硬件信息的九個(gè)命令實(shí)例詳解

    Linux查看系統(tǒng)硬件信息的九個(gè)命令實(shí)例詳解

    這篇文章主要介紹了Linux下查看硬件信息的常用命令,涵蓋CPU、內(nèi)存、磁盤、網(wǎng)卡、PCI、USB、lshw及BIOS等模塊,并附實(shí)例說明,幫助用戶快速掌握各硬件組件的檢測(cè)方法與輸出解析,需要的朋友可以參考下
    2025-06-06
  • 檢查L(zhǎng)inux系統(tǒng)中文件大小的方法總結(jié)

    檢查L(zhǎng)inux系統(tǒng)中文件大小的方法總結(jié)

    在Linux操作系統(tǒng)中,掌握如何高效檢查文件大小是每位開發(fā)者和系統(tǒng)管理員的必備技能,本文詳細(xì)介紹了四種檢查L(zhǎng)inux文件大小的方法,感興趣的朋友可以參考下
    2024-03-03

最新評(píng)論

团风县| 开阳县| 宣化县| 贡嘎县| 东丰县| 太康县| 比如县| 三河市| 阜康市| 关岭| 永吉县| 合肥市| 古蔺县| 彰化市| 武穴市| 西峡县| 石首市| 赣州市| 千阳县| 汶川县| 揭西县| 夏邑县| 德化县| 东阳市| 浦城县| 和林格尔县| 确山县| 九台市| 吉林市| 两当县| 金塔县| 浦县| 临沭县| 海口市| 登封市| 托里县| 旅游| 宜兰县| 分宜县| 盱眙县| 自贡市|