亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

Shell編程之變量數值計算方法示例

2020-07-27 18:46:25
字體:
來源:轉載
供稿:網友

算術運算符

如果要執行算術運算符,就離不開各種運算符號,和其他編程語言類似,shell也有很多算術運算符。在任何一門形式的語言中均會存在算術運算的情況,Shell常見的運算符如下所示:

運算符 含義
+ - * / % 加 減 乘 除 求余
** 冪運算
++ -- 自增 自減
&& || ! 與(and) 或(or) 非(取反)
< <= > >= == != 小于 小于等于 大于 大于等于 等于 不等于
<< >> 左移位 右移位
~ | & ^ 按位取反 按位異或 按位與 按位或
= += -= *= /= %= 如a+=1與a=a+1相同

算術運算命令 

運算命令 含義
(()) 整數運算,效率很高
let 整數運算,類似于(())
expr 整數運算,另外還有很多額外功能
bc Linux中的計算器,適合整數及小數運算
$[] 整數運算
awk 既可用于整數運算,也可用于小數運算
declare 定義變量值和屬性,-i 參數可以用于定義整型變量并進行運算

數值運算用法

(())用法

雙小括號常用于數值運算和數值比較,因其效率很高,用法靈活,因此是常用的運算之一。

示例 含義 備注
((i=i+1)) 運算后并進行賦值,即先進行i+1計算并將該值賦值給i 只能使用echo ((i+1))
((2>1&&8>3)) 進行比較后再進行邏輯運算 常用于條件判斷
echo $((4+2)) 直接進行計算并輸出結果

(())用法示例

[root@localhost ~]# echo $((90-12));echo $((80+12)) # 基本運算7892[root@localhost ~]# ((a=100))[root@localhost ~]# ((a*=2))[root@localhost ~]# echo $a # 輸出運算結果200[root@localhost ~]# ((a=100+2**10-200%100)) # 復雜運算[root@localhost ~]# echo $a1124[root@localhost ~]# a=$((50**2*2+2500)) # 運算并進行賦值[root@localhost ~]# echo $a7500[root@localhost ~]# a=100[root@localhost ~]# echo $((a++));echo $((++a)) # 自增運算100102[root@localhost ~]# echo $((a**2))10404[root@localhost ~]# echo $((2==2)) # 比較運算1   # 1:代表結果為真[root@localhost ~]# echo $((2>2))0   # 0:代表結果為假

++/--:如果++/--在變量前面,則代表先進行運算再輸出結果,如果++/--在變量后面,則先輸出結果再進行運算
(()):在執行命令時不需要添加,直接使用((4+3))即可,如果輸出進行變量賦值,則需要添加,直接使用((4+3))即可,如果輸出進行變量賦值,則需要添加,如使用a=$((4+3))

(())中所有字符中有無空格均不受影響

let用法

let的語法格式如下所示:

let var=value

let用法示例

[root@localhost ~]# a=8[root@localhost ~]# b=9[root@localhost ~]# c=$a+$b[root@localhost ~]# echo $c8+9  # 進行字符串連接[root@localhost ~]# let c=$a+$b[root@localhost ~]# echo $c17  # 進行相加

let let c=a+a+b等同于((c=a+a+b))

expr用法

expr的語法格式如下所示:

expr 表達式

expr用法示例

[root@localhost ~]# expr 4+8; expr 2*54+82*5[root@localhost ~]# expr 4 + 8; expr 2 /* 5 # 注意空格1210[root@localhost ~]# a=100[root@localhost ~]# b=200[root@localhost ~]# c=`expr $a + $b`[root@localhost ~]# echo $c300[root@localhost ~]# a=2[root@localhost ~]# b=5[root@localhost ~]# c=`expr $a /* $b`[root@localhost ~]# echo $c10

使用expr的注意事項如下所示:
運算符與計算項之間左右間必須要有一個空格,否則會出現報錯
使用*需要進行轉義符

bc用法

bc是Linux中的計算器,可作為命令行計算工具使用

bc用法示例

[root@localhost ~]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'.1+231.0369+2.0147893.051689[root@localhost ~]# echo 100+200 | bc # 通過管道進行計算300[root@localhost ~]# a=250[root@localhost ~]# b=360[root@localhost ~]# c=`echo $a + $b | bc`[root@localhost ~]# echo $c610

awk用法示例

[root@localhost ~]# echo "12.36 12.36" | awk '{print $1+$2}'24.72[root@localhost ~]# echo "12.36 12.36" | awk '{print $1*$2+$2}'165.13[root@localhost ~]# echo "12.36 12.36" | awk '{print $1*($2+$2)}'305.539[root@localhost ~]# echo "10 100" | awk '{print $1*($2+$2)}'2000

declare用法

declare的語法格式如下所示:

declare -i var=value

declare用法示例

[root@localhost ~]# declare -i a=120 b=130[root@localhost ~]# a=a+b  #因為已經申明為整數,可以直接進行運算[root@localhost ~]# echo $a250

$[]用法示例

[root@localhost ~]# a=120[root@localhost ~]# b=1290[root@localhost ~]# a=$[a+b][root@localhost ~]# echo $a1410[root@localhost ~]# echo $[5/3]1[root@localhost ~]# echo $[5%3]2

read用法示例

[root@localhost ~]# read -t 20 -p "Input 3 number:" a b cInput 3 number:1 2 3[root@localhost ~]# echo $a $b $c # 通過用戶輸入傳遞變量賦值1 2 3

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美视频第一页| 久久综合九色九九| 中文字幕v亚洲ⅴv天堂| 1769国产精品| 国精产品一区一区三区有限在线| 精品毛片三在线观看| 欧洲亚洲免费视频| 美乳少妇欧美精品| 成人性生交xxxxx网站| 51视频国产精品一区二区| 亚洲色图偷窥自拍| 久久91亚洲人成电影网站| 欧美一级免费视频| 国产精品女人久久久久久| 中文字幕一区二区三区电影| 国产成人亚洲综合91| 91高清免费视频| 久久久成人精品视频| 欧美性xxxxx极品| 亚洲第一天堂无码专区| 亚洲国产古装精品网站| 亚洲毛片一区二区| 欧美激情中文字幕在线| 91热福利电影| 欧美激情图片区| 日韩在线观看你懂的| 国语自产精品视频在线看一大j8| 国内精品久久久久影院 日本资源| 欧美国产日韩在线| 成人黄色短视频在线观看| 在线电影欧美日韩一区二区私密| 欧美乱人伦中文字幕在线| 国产精品久久久久影院日本| 国产欧美日韩综合精品| 精品动漫一区二区| 精品视频在线播放| 狠狠综合久久av一区二区小说| 久久九九全国免费精品观看| 日本一本a高清免费不卡| 精品一区二区电影| 国产欧美精品日韩| 亚洲九九九在线观看| 日韩a**中文字幕| 欧美国产精品人人做人人爱| 国产精品日韩在线观看| 亚洲网站视频福利| 日韩免费观看在线观看| 国产精品电影观看| 欧美日韩国产二区| 伊人久久久久久久久久久| 精品久久久999| 午夜精品国产精品大乳美女| 91久久精品国产91久久性色| 日韩性xxxx爱| 亚洲三级免费看| 国产精品第一第二| 国产精品成人一区二区三区吃奶| 欧美主播福利视频| 欧美激情18p| 91超碰中文字幕久久精品| 91在线免费看网站| 中文字幕日韩视频| 欧美网站在线观看| 色狠狠av一区二区三区香蕉蜜桃| 亚洲网站在线播放| 中文字幕日韩在线播放| 国产一区二区在线免费视频| 456亚洲影院| 浅井舞香一区二区| 国产日韩欧美成人| 中文字幕亚洲专区| 国内精品免费午夜毛片| 久久精品国产亚洲一区二区| 亚洲综合自拍一区| 欧美黑人一区二区三区| 欧美中文在线免费| 日日噜噜噜夜夜爽亚洲精品| 欧美激情精品久久久久久久变态| 亚洲美女动态图120秒| 国产一区二区欧美日韩| 九九热精品视频国产| 亚洲中国色老太| 成人精品aaaa网站| 国产精品成人免费电影| 亚洲无线码在线一区观看| 欧美精品一本久久男人的天堂| 97在线观看视频国产| 欧美国产日韩xxxxx| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲在线视频福利| 欧美激情日韩图片| 国产精品草莓在线免费观看| 精品久久久久久久久久ntr影视| 国产精品第2页| 亚洲一区二区免费在线| 欧美性生交xxxxxdddd| 中文字幕在线精品| 美女扒开尿口让男人操亚洲视频网站| 亚洲社区在线观看| 国语自产精品视频在线看抢先版图片| 亚洲精品视频中文字幕| 国产成人精品亚洲精品| 精品香蕉一区二区三区| 国产精品久久综合av爱欲tv| 久久久亚洲精选| 亚洲一区二区久久久久久久| 久久精品国产亚洲一区二区| 亚洲自拍中文字幕| 国产成人精彩在线视频九色| 一区二区欧美亚洲| 亚洲最大激情中文字幕| 美女精品久久久| 久久国产加勒比精品无码| 亚洲一区二区三区在线免费观看| 日韩在线视频线视频免费网站| 国产视频综合在线| 亚洲欧美日韩另类| 亚洲毛片在线看| 日韩av资源在线播放| 国产精品99一区| 久久视频这里只有精品| 国产精品久在线观看| 欧美日韩精品中文字幕| 日韩成人在线电影网| 91精品国产自产在线老师啪| 日韩在线观看免费高清完整版| 欧美大码xxxx| 久久精品在线播放| 精品自在线视频| 久久精品国产一区二区三区| 91精品啪在线观看麻豆免费| 色悠悠久久88| 亚洲电影免费观看高清完整版在线观看| 欧洲亚洲免费在线| 国产91亚洲精品| 2020久久国产精品| 色综合视频网站| 91欧美日韩一区| 日韩久久午夜影院| 欧美成人免费小视频| 久久久久国色av免费观看性色| 亚洲欧美一区二区三区情侣bbw| 国产精品老女人视频| 亚洲精品www| 国产成人avxxxxx在线看| 一区二区三区高清国产| 亚洲精品天天看| 亚洲三级av在线| 免费91麻豆精品国产自产在线观看| 日韩免费在线视频| 久操成人在线视频| 一区二区三区日韩在线| 国产日韩精品视频| 日本不卡免费高清视频| 在线亚洲国产精品网| 久久精品91久久久久久再现| 欧美一级电影免费在线观看| 亚洲xxxx做受欧美| 一区二区三区日韩在线| 日韩一级裸体免费视频| 欧美日韩成人免费| 欧美性受xxxx黑人猛交| 精品二区三区线观看| 日本国产一区二区三区|