1. 程式人生 > >shell的expr運算符的使用

shell的expr運算符的使用

如果 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運算符的使用