欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1、if 的基本語(yǔ)法:

if [ command ];then
   符合該條件執(zhí)行的語(yǔ)句
elif [ command ];then
   符合該條件執(zhí)行的語(yǔ)句
else
   符合該條件執(zhí)行的語(yǔ)句
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ù)值的比較千萬(wàn)不要使用大于號(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ì)目錄](méi)的長(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ù)雜邏輯判斷

操作說(shuō)明
-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)文章

  • 通過(guò)shell腳本對(duì)mysql的增刪改查及my.cnf的配置

    通過(guò)shell腳本對(duì)mysql的增刪改查及my.cnf的配置

    這篇文章主要介紹了通過(guò)shell腳本對(duì)mysql的增刪改查及my.cnf的配置,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-07-07
  • Shell腳本避免重復(fù)執(zhí)行的方法

    Shell腳本避免重復(fù)執(zhí)行的方法

    這篇文章主要介紹了Shell腳本避免重復(fù)執(zhí)行的方法的,本文給出的代碼只要放在需要執(zhí)行的腳本頭部即可避免重復(fù)執(zhí)行,非常方便實(shí)用,需要的朋友可以參考下
    2015-01-01
  • shell腳本開頭#!/bin/bash的作用詳解

    shell腳本開頭#!/bin/bash的作用詳解

    在Shell腳本中,#!/bin/bash 是指定腳本使用 Bash 解釋器的 shebang 語(yǔ)句,它出現(xiàn)在腳本的第一行,并告訴操作系統(tǒng)使用 Bash 解釋器來(lái)執(zhí)行該腳本,這篇文章主要介紹了shell腳本開頭#!/bin/bash的作用詳解,需要的朋友可以參考下
    2023-12-12
  • 自動(dòng)殺掉占用較多CPU資源的Shell腳本

    自動(dòng)殺掉占用較多CPU資源的Shell腳本

    這篇文章主要介紹了自動(dòng)殺掉占用較多CPU資源的Shell腳本,需要的朋友可以參考下
    2014-06-06
  • Shell編程之免交互的實(shí)現(xiàn)示例

    Shell編程之免交互的實(shí)現(xiàn)示例

    對(duì)于Linux操作系統(tǒng)中,有許多操作都會(huì)觸及到交互,本文主要介紹了Shell編程之免交互,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Shell腳本echo指令使用小技巧

    Shell腳本echo指令使用小技巧

    這篇文章主要介紹了Shell腳本echo指令使用小技巧,包括使用echo指令輸出換行、輸出不換行、輸出變量等技巧,需要的朋友可以參考下
    2014-07-07
  • Linux Shell函數(shù)返回值

    Linux Shell函數(shù)返回值

    這篇文章主要介紹了Linux Shell函數(shù)返回值,需要的朋友可以參考下
    2016-11-11
  • SED單行腳本快速參考中文版(Unix 流編輯器)

    SED單行腳本快速參考中文版(Unix 流編輯器)

    這篇文章主要介紹了SED單行腳本快速參考中文版,需要的朋友可以參考下
    2016-02-02
  • Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用

    Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用

    這篇文章主要介紹了Shell特殊變量(Shell $#、$*、$@、$?、$$)的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 如何使用date獲取時(shí)間戳

    如何使用date獲取時(shí)間戳

    這篇文章主要介紹了如何使用date獲取時(shí)間戳,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08

最新評(píng)論