變數的數值計算
(1).實驗1
[root@~_~ day4]# cat test.sh
#!/bin/bash
a=6b=2
echo "a-b=$(($a-$b))"
echo "a+b=$(($a+$b))"
echo "a*b=$(($a*$b))"
echo "a/b=$(($a/$b))"
echo "a%b=$(($a%$b))"
echo "a**b=$(($a**$b))"
[root@~_~ day4]# sh test.sh
a-b=4
a+b=8
a*b=12
a/b=3
a%b=0
a**b=36
(2).實驗2
[root@~_~ day4]# cat test2.sh
#!/bin/bash
echo $(($1$2$3))
[root@~_~ day4]# sh test2.sh 1 + 2
注意:」1 + 2」有空格,如無則只傳給$1
[root@~_~ day4]# echo $[3+4]
等同與(()),但後者效率高
[root@~_~ day4]# i=10
[root@~_~ day4]# let i=i+1
[root@~_~ day4]# echo $i
注意:運算子及計算的數值左右均有空格
(1).四則運算
[root@~_~ day4]# cat expr.sh
#!/bin/bash
a=$1
b=$2
echo "a*b=`expr $a + $b`"
echo "a-b=`expr $a \* $b`"
[root@~_~ day4]# sh expr.sh 2 3
a*b=5
a-b=6
(2).判斷檔案拓展名
運用:ssh-copy-id檔案中;(vim `which ssh-copy-id`)
用法:[root@~_~ ~]# cat exprfile.sh
#!/bin/bash
if expr "$1" : ".*\.pub" ;then
echo "is .pub file"
else
echo "is not *.pub file"
fi[root@~_~ ~]# sh exprfile.sh test.pub
is .pub file
[root@~_~ ~]# sh exprfile.sh test.pu
is not *.pub file
(3).判斷乙個數是否為整數
[root@~_~ day4]# cat isinteger.sh
#!/bin/bash
expr $1 + 1 &>/dev/null
if [ $? -eq 0 ]
then
echo "is integer"
else
echo "is not a integer"
fi[root@~_~ day4]# sh isinteger.sh 3.9
is not a integer
[root@~_~ day4]# sh isinteger.sh 3
is integer
(4).計算字串長度
[root@~_~ day4]# echo `expr length "hello"`
還有其他運用,檢視man expr
乙個計算器,用yum安裝;直接bc進入計算器; 支援浮點數計算.
(1).互動環境
[root@~_~ day4]# bc
bc 1.06.95
this is free software with absolutely no warranty.
for details type `warranty'.
2*33+7+5
3.4+5.6
9.0(2).加管道符
[root@~_~ day4]# echo "3+5"|bc
(3).通過scale指定計算精度
[root@~_~ day4]# var=3.14
[root@~_~ day4]# var=`echo "scale=2;$var*3"|bc`
[root@~_~ day4]# echo $var
9.42
支援浮點運算,內建有log、sqr、cos、sin等等函式
[root@~_~ day4]# var=`echo "$var"|awk ''`
[root@~_~ day4]# echo $var
0.841471
[root@~_~ day4]# var=`echo "$var 2"|awk ''`
[root@~_~ day4]# echo $var
0.97922
shell變數的數值計算
root foundation63 a 123 root foundation63 expr a 10 133 root foundation63 expr a 10 113 root foundation63 expr a 10 此命令不能識別,必須加 root foundation63 echo...
shell 變數的數值計算
變數的數值計算覺的有如下命令 let expr bc 下面看看數值計算的運算子 此法很常用且效率高,用於執行整數型的計算,不支援浮點型。如圖 root localhost a 1 2 3 4 3 root localhost echo a 8 root localhost b 1 2 3 4 3 r...
三 shell 變數的數值計算
三 read 運算操作符與運算命令 意義舉例 用於整數的常用運算子,效率很高 i 6 1 i 6 1 let類似 效率沒 高 let i 6 1 expr 可用於整數運算,還有許多額外功能 i expr 6 1 bclinux下的計算器,適合整數和小數運算 echo 1.0 6.0 用於整數運算 i...