shell編程之數值運算

shell編程是Linux學習中的難點,不少人學了幾個月也是不明就裏,那麼今天我帶着你們看一看,shell編程裏面的數值運算shell

 Shell 編程中的基本數值運算,這類運算包括:編程

  • 數值(包括整數和浮點數)間的加、減、乘、除、求冪、求模等bash

  • 產生指定範圍的隨機數ide

  • 產生指定範圍的數列函數

Shell 自己能夠作整數運算,複雜一些的運算要經過外部命令實現,好比 expr,bc,awk 等。另外,可經過 RANDOM 環境變量產生一個從 0 到 32767 的隨機數,一些外部工具,好比 awk 能夠經過 rand() 函數產生隨機數。而 seq 命令能夠用來產生一個數列。下面對它們分別進行介紹。工具

整數運算

範例:對某個數加 1

本次試驗是在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 等。

腳本範例:從 1 加到某個數

#!/bin/bash
# calc.sh

i=0;
while [ $i -lt 10000 ]
do
    ((i++))
done
echo $i

說明:這裏經過 while [ 條件表達式 ]; do .... done 循環來實現。-lt 是小於號 <

這篇文章若是你能看懂,說明你已經有基礎了,若是看不懂,請留言,讓咱們知道你須要補一下哪一個方面的基礎

生活不止眼前的 Bug,還有詩和遠方的茶園!—— 值四三十而立,致全部陪伴的親友以及全部曾經或者如今還在一線的碼農朋友們!

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索