shell的expr運算符的使用
阿新 • • 發佈:2018-01-25
如果 ech 整數 this ini 兩位小數 toolbar ubun pub 使用expr註意:
運算符及用於計算的數字左右都至少有一個空格,否則報錯
使用乘號的時候,必須用反斜線屏蔽其特定的含義
expr的企業級實戰案例詳解
由於函數庫很少,所以expr是一個簡單的用於判斷一個字符串是否為整數的方法;原理就是expr做計算的時候變量或者字符串必須是整數的規則。把一個變量或者字符串和一個整數相加,如果$?返回的是0;這個變量就是整數。
例如:通過傳參判斷輸出是否為整數:
#!/bin/bash s=`expr $1 + 4 2>&1` a=$? if [ $a -eq 0 ]; then echo "this is int" else echo "bad" fi
判斷輸入的數值不為空;
#!/bin/bash read -p "the first num:" num read -p "the two num:" num2 #num=4 #num2= if [ ! -n $num ] && [ ! -n $num2 ]; #-n:不為零是真,所以用!取反 then echo "this is a bab" exit 1 fi
擴展:
編程思路
第一關:判斷參數的個數是不是為2,若不是,則給你提示終止運行
第二個:判斷傳入的參數是否為整數,若不是,則給我提示終止運行
第三關:做運行
#!/bin/bash read -p "the first num:" num read -p "the two num:" num2 #num=4 #num2= if [ ! $num ]; #-n:不為零是真,所以用!取反 或者用!判斷,如果是空值,就執行下面的 then echo "this is a bab" exit 1 fi if [ ! $num2 ]; then echo "this is a babe" exit 2 fi expr $num + $num2 + 4 > /dev/null #有點問題 if [ $? -ne 0 ]; then echo "this must two arge" exit 3 fi echo "the is good" #接下來的計算就很容易了 ~
expr的特殊用法:判斷文件擴展命名是否符合要求
#!/bin/bash if expr "$1" : ".*\.pub" >/dev/null then echo "using $1" else echo "using bad" fi
使用expr命令計算長度:
root@ubuntu:/home/xpg# char="i am oldboy" root@ubuntu:/home/xpg# expr length "$char" 11 root@ubuntu:/home/xpg# echo ${#char} 11 root@ubuntu:/home/xpg# echo $char | wc -L 11
請使用shell腳本,打印下面語句中字符串不大於6的單詞:
I am oldboy linux welcome to our training
#!/bin/bash char="I am oldboy linux welcome to our training" for i in $char; do #echo $i if [ `echo ${#i}` -le 6 ] >/dev/null # if [ `expr length "$i"` -le 6 ] >/dev/null 也可以使用expr計算長度 then echo $i fi done
bc計算器:
root@ubuntu:/home/xpg# echo 8.8-5|bc 3.8 root@ubuntu:/home/xpg# echo "scale=2;355/133" |bc #scale=2保留兩位小數 2.66 root@ubuntu:/home/xpg#
shell的expr運算符的使用