溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

linux expr命令

發(fā)布時(shí)間:2020-07-30 19:30:31 來(lái)源:網(wǎng)絡(luò) 閱讀:1281 作者:fxl風(fēng) 欄目:建站服務(wù)器

expr命令一般用于整數(shù)值,但也可用于字符串。


1.expr計(jì)數(shù)器功能。
        expr 10 + 10
        20
        expr 1500 + 900
        2500
        expr 30 / 3
        10
        expr 30 / 3 / 2
        5
        (注意運(yùn)算符左右都有空格)

     使用乘號(hào)時(shí),必須用反斜線屏蔽其特定含義。因?yàn)?/span>shell可能會(huì)誤解顯示星號(hào)的意義。
        expr 30 \* 3

        90

 

2.計(jì)算字串長(zhǎng)度

expr length “this is a test”

14

 

3.抓取字串

expr substr “this is a test” 3 5

is is

 

4.抓取第一個(gè)字符數(shù)字串出現(xiàn)的位置

expr index "sarasara"  a

2

 

5.expr增量計(jì)數(shù)
        expr在循環(huán)中用于增量計(jì)算。首先,循環(huán)初始化為0,然后循環(huán)值加1,反引號(hào)的用法意
        LOOP=0
        LOOP=`expr $LOOP + 1`

6.expr判斷是否為整數(shù)
  可以用expr測(cè)試一個(gè)數(shù)。如果試圖計(jì)算非整數(shù),將返回錯(cuò)誤。
        rr=1.1
        expr $rr + 1
        expr: non-numeric argument


        rr=2

        expr $rr + 1

        3


(注意:這個(gè)例子與原文不同)
  這里需要將一個(gè)值賦予變量(不管其內(nèi)容如何),進(jìn)行數(shù)值運(yùn)算,并將輸出導(dǎo)入dev/null
  然后測(cè)試最后命令狀態(tài),如果為0,證明這是一個(gè)數(shù),其他則表明為非數(shù)值。
      value=12
       expr $value + 10 > /dev/null 2>&1
       echo $?

0

這是一個(gè)數(shù)。


value=hello

expr $value + 10 > /dev/null 2>&1
       echo $?
       2

    這是一個(gè)非數(shù)值字符。

 7.expr本身退出狀態(tài)為1

        expr也可以返回其本身的退出狀態(tài),不幸的是返回值與系統(tǒng)最后退出命令剛好相反,成功返回1,任何其他值為無(wú)效或錯(cuò)誤。下面的例子測(cè)試兩個(gè)字符串是否相等,這里字符串為“hello”“hello”
        value=hello
        expr $value = "hello"
        1
        echo $?
        0
        expr返回1。不要混淆了,這表明成功?,F(xiàn)在檢驗(yàn)其最后退出狀態(tài),返回0表示測(cè)試成功,
        “hello”確實(shí)等于“hello”

 

8.模式匹配 
        expr也有模式匹配功能。可以使用expr通過(guò)指定冒號(hào)選項(xiàng)計(jì)算字符串中字符數(shù)。.*意即任何字符重復(fù)0次或多次。
        value=accounts.doc
        expr $value : '.*'
        12

 

 


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI