shell編程是Linux學習中的難點,不少人學了幾個月也是不明就裏,那麼今天我帶着你們看一看,shell編程裏面的數值運算shell
Shell 編程中的基本數值運算,這類運算包括:編程
數值(包括整數和浮點數)間的加、減、乘、除、求冪、求模等bash
產生指定範圍的隨機數ide
產生指定範圍的數列函數
Shell 自己能夠作整數運算,複雜一些的運算要經過外部命令實現,好比 expr,bc,awk 等。另外,可經過 RANDOM 環境變量產生一個從 0 到 32767 的隨機數,一些外部工具,好比 awk 能夠經過 rand() 函數產生隨機數。而 seq 命令能夠用來產生一個數列。下面對它們分別進行介紹。工具
本次試驗是在Linux虛擬機的交互模式運行
學習
$ i=0; $ ((i++)) $ echo $i 1 $ let i++ $ echo $i 2 $ expr $i + 1 3 $ echo $i 2 $ echo $i 1 | awk '{printf $1+$2}' 3
說明: expr 以後的 $i,+,1 之間有空格分開。若是進行乘法運算,須要對運算符進行轉義,不然 Shell 會把乘號解釋爲通配符,致使語法錯誤; awk 後面的 $1 和 $2 分別指 $i 和 1,即從左往右的第 1 個和第 2 個數。ui
用 Shell 的內置命令查看各個命令的類型以下:內存
$ type type type is a shell builtin $ type let let is a shell builtin $ type expr expr is hashed (/usr/bin/expr) $ type bc bc is hashed (/usr/bin/bc) $ type awk awk is /usr/bin/awk
從上述演示可看出: let 是 Shell 內置命令,其餘幾個是外部命令,都在 /usr/bin 目錄下。而 expr 和bc 由於剛用過,已經加載在內存的 hash 表中。虛擬機
說明:若是要查看不一樣命令的幫助,對於 let 和 type 等 Shell 內置命令,能夠經過 Shell 的一個內置命令 help 來查看相關幫助,而一些外部命令能夠經過 Shell 的一個外部命令 man 來查看幫助,用法諸如內置命令:help let,外部命令 :man expr 等。
#!/bin/bash # calc.sh i=0; while [ $i -lt 10000 ] do ((i++)) done echo $i
說明:這裏經過 while [ 條件表達式 ]; do .... done 循環來實現。-lt 是小於號 <
這篇文章若是你能看懂,說明你已經有基礎了,若是看不懂,請留言,讓咱們知道你須要補一下哪一個方面的基礎
生活不止眼前的 Bug,還有詩和遠方的茶園!—— 值四三十而立,致全部陪伴的親友以及全部曾經或者如今還在一線的碼農朋友們!