shell基礎 變數的數值計算

2022-03-18 09:03:06 字數 2830 閱讀 4686

變數的數值計算

(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...