真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

bash的算術(shù)運(yùn)算和條件測試語句基礎(chǔ)-創(chuàng)新互聯(lián)

編程語言包括問題空間和解空間 ,問題空間就是使用人類的自然語言描述的任務(wù),解空間就是使用編程語言描述任務(wù)的實(shí)施步驟和顯示的最終結(jié)果。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、鹽城網(wǎng)站維護(hù)、網(wǎng)站推廣。

編程思想,就是能夠把編程語言所提供的語法格式,隨時隨地的轉(zhuǎn)換成解決問題的思路。我們學(xué)習(xí)編程語言的目的就是將目的空間和解空間對應(yīng)起來,最直接的辦法就是使用解空間的語言習(xí)慣來進(jìn)行思考。

對于編程語言的學(xué)習(xí)的步驟:1、學(xué)習(xí)編程語言的語法格式;2、學(xué)習(xí)工具的使用(庫、命令);3、算法;4、數(shù)據(jù)結(jié)構(gòu)

shell腳本編程:

shell腳本的內(nèi)容和格式:首行、絕對行首、shebang(解釋器程序的絕對路徑)、注釋信息(以#占據(jù)絕對行首的行)。為了能夠在程序中突出程序的功能,應(yīng)適當(dāng)?shù)奶砑涌瞻仔?,以分隔不同的源代碼類;應(yīng)該有適當(dāng)?shù)目s進(jìn)

 利用bash腳本編程實(shí)現(xiàn)算術(shù)運(yùn)算:+ - * / % **或^ ;增強(qiáng)型的算術(shù)表達(dá)式為:+= -= *= /= %= ++ --

%為模運(yùn)算,取余數(shù)。

算術(shù)運(yùn)算方法:

 1、let VAR=算術(shù)表達(dá)式

 let將算術(shù)表達(dá)式先進(jìn)行算術(shù)運(yùn)算,并將運(yùn)算得到的結(jié)果保存到變量VAR中。

 2、VAR=$[算術(shù)表達(dá)式]

 ${}引用變量,算術(shù)表達(dá)式中如果有變量引用,可以使用$引用,也可以省略$,例如:SUM=$[C+B]或SUM=$[$C+$B]

 3、VAR=$((算術(shù)表達(dá)式))

 算術(shù)表達(dá)式中如果有變量引用,可以使用$引用,也可以省略$

 4、expr ARGU1 ARGU2 ARGU3

 ARGU1和ARGU3必須是數(shù)值,ARGU2必須是運(yùn)算符號

 5、echo "算術(shù)表達(dá)式"|bc

 注意:*號在某些情況下需要轉(zhuǎn)義, shell 通常要在子 shell 中運(yùn)行括號中的表達(dá)式,所以需要用 \( 和 \) 轉(zhuǎn)義括號,或者把這些操作符括在單引號或雙引號內(nèi)。

 bash中的弱變量,是弱類型的變量,默認(rèn)是字符型的,數(shù)值型中不包括浮點(diǎn)型

 例如:# let x=2 y=2**3 z=y*3;echo $? $x $y $z 運(yùn)行結(jié)果為:0 2 8 24

    # [[ ( -d "$HOME" ) && ( -w "$HOME" ) ]] &&  >  echo "home is a writable directory" 運(yùn)行結(jié)果為:home is a writable directory

    # echo $['grep -c "^r" /etc/passwd'+'grep -c "^r" /etc/issue'+'grep -c "^r" /etc/fstab']

    # cat /etc/passwd /etc/issue /etc/fstab | grep -c "^r"

    # grep -c "^r" /etc/passwd /etc/issue /etc/fstab

 條件測試命令:

 test EXPRESSION:shell內(nèi)建命令

 [ EXPRESSION ]:外部命令[:(注意兩邊的空格)

 ` EXPRESSSION `:bash的內(nèi)部關(guān)鍵字

 注意:這類命令一般沒有執(zhí)行結(jié)果,只有執(zhí)行狀態(tài)返回值;test命令有三類測試表達(dá)式,分別為數(shù)值測試、字符串測試、文件狀態(tài)測試,解釋如下:

 1、數(shù)值測試:雙目操作符

 -eq:測試是否被測試的兩個數(shù)值是否相等,相等為真,不等為假

 -ne:被測試的兩個數(shù)值是否相等,不等為真,相等為假

 -gt:被測試的兩個數(shù)值,左邊的是否大于右邊的,大于為真,不大于為假

 -lt:被測試的兩個數(shù)值,左邊的是否小于右邊的,小于為真,不小于為假

 -ge:被測試的兩個數(shù)值,左邊的是否大于等于右邊的,大于等于為真,小于為假

 -le:被測試的兩個數(shù)值,左邊的是否小于等于右邊的,小于等于為真,大于為假

 例如:顯示~/aaa的大小是否小于1000字節(jié)

  # [ $(ls -l aaa | awk '{print $5}') -lt 1000 ]&& echo ok ||echo "no ok"

  # test [ 3 -gt 4 ] && echo True || echo false :判斷左邊的是否大于右邊的,大于為真,不大于為假

  # [ "abc" != "def" ];echo $? :用 [ ] 的形式比較兩個字符串不相等

  # test -d "$HOME" ;echo $? :測試 HOME 變量的值,用單目操作符 -d 檢查它是不是目錄

  字母數(shù)值比較:

  # test "abc" = "def" ;echo $?

  1

  # [ "abc" != "def" ];echo $?

  0

  # [ "abc" \< "def" ];echo $?

  0

  # [ "abc" \> "def" ];echo $?

  1

  # [ "abc" \<"abc" ];echo $?

  1

  # [ "abc" \> "abc" ];echo $?

  1

2、字符串測試

雙目操作符:==|=:被測試的兩個字符串是否相同,相同為真,不同為假

      !=:被測試的兩個字符串是否不相同,不同為真,相同為假

      >:被測試的兩個字符串在ASCII碼表中,對應(yīng)的二進(jìn)制數(shù)值,左邊是否大于右邊,大于為真,小于為假

      <:被測試的兩個字符串在ASCII碼表中,對應(yīng)的二進(jìn)制數(shù)值,左邊是否小于右邊,小于為真,小于為假

      注意:>和<必須用在` EXPRESSSION `測試語句中

      =~:被測試的兩個字符串,左側(cè)字符串是否能被右側(cè)的PATTERN匹配,能匹配為真,不能匹配為假

單目操作符:-z 'STRING':判斷指定的字符串是否為空串,空為真,不空為假

      -n 'STRING':判斷指定的字符串是否為非空串,非空為真,空為假

      注意:1、通常情況下,字符串要加引號,單引號或雙引號都行,根據(jù)實(shí)際情況選擇即可

         2、[[]]和[]在某些情況下,可能意義不同,要區(qū)分使用

         3、表達(dá)式的兩端或操作符的兩端都要有空格

3、文件狀態(tài)測試:文件存在性測試,如果被測的文件存在為真,不存在為假

-a|-e 例如:[ -e /backup ]

文件類型測試的單目運(yùn)算符如下(先測試存在性):

 -b FILE:被測試的文件是否存在,并且是否為塊設(shè)備,存在且是塊設(shè)備為真,否則為假

 -c FILE:被測試的文件是否存在,并且是否為字符設(shè)備

 -d FILE:被測試的文件是否存在,并且是否為目錄文件

 -f FILE:被測試的文件是否存在,并且是否為普通文件

 -h|-L FILE:被測試的文件是否存在,并且是否為符號鏈接文件

 -p FILE:被測試的文件是否存在,并且是否為管道文件

 -S FILE:被測試的文件是否存在,并且是否為套接字文件

 文件的訪問權(quán)限測試:

 -r FILE: 被測試的文件是否存在,并且當(dāng)前有效用戶是否可讀,文件存在并且當(dāng)前有效用戶可讀為真,否則為假

 -w FILE:被測試的文件是否存在,并且當(dāng)前有效用戶是否可寫

 -x FILE:被測試的文件是否存在,并且當(dāng)前有效用戶是否可執(zhí)行

 文件的特殊文件標(biāo)識測試:

 -u FILE:被測試的文件是否存在,并且是否設(shè)置了SUID權(quán)限,文件存在并且設(shè)置了SUID權(quán)限為真,否則為假

 -o FILE:被測試的文件是否存在,并且是否設(shè)置了SGID權(quán)限

 -g FILE:被測試的文件是否存在,并且是否設(shè)置了STICKY權(quán)限

 文件的所有權(quán)測試:

 -O FILE:被測試的文件是否存在,并且其屬主是否為當(dāng)前有效用戶

 -G FILE:被測試的文件是否存在,并且其屬組是否為當(dāng)前有效用戶的組

 文件內(nèi)容是否為空:

 -s FILE:被測試的文件是否存在,且內(nèi)容不為空,存在且內(nèi)容不為空為真,否則為假

 時間戳測試:

 -N FILE:被測試的文件自從上一次被修改后,是否被修改過

 文件類型測試的雙目測試:

 FILE1 -ef FILE2:測試兩個文件是否指向同一個文件系統(tǒng)的相同inode的硬鏈接

 FILE1 -nt FILE2:被測試的兩個文件,F(xiàn)ILE1是否比FILE2更新

 FILE1 -ot FILE2:被測試的兩個文件,F(xiàn)ILE1是否比FILE2更舊

 測試語句中可以添加邏輯運(yùn)算,兩種表達(dá)方式如下:

 第一種表達(dá)方式:[ -O /tmp/test ]&&[ -s /tmp/test ]

         [ -O /tmp/test ]||[ -s /tmp/test ]

 第二種表達(dá)方式:[ -O /tmp/test -a -s /tmp/test ]

         [ -O /tmp/test -o -s /tmp/test ]

         [ ! -O /tmp/test ]

exit [#]:退出當(dāng)前shell的登錄。當(dāng)shell腳本運(yùn)行時,一旦遇到exit命令,將立即結(jié)束當(dāng)前shell進(jìn)程,同時腳本的運(yùn)行也將被停止,即exit的所有命令都不再被解釋執(zhí)行。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:bash的算術(shù)運(yùn)算和條件測試語句基礎(chǔ)-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/ddggsd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部