溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

shell編程數(shù)值運算有哪些

發(fā)布時間:2021-12-17 16:41:35 來源:億速云 閱讀:131 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“shell編程數(shù)值運算有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“shell編程數(shù)值運算有哪些”吧!

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

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

  • 產(chǎn)生指定范圍的隨機數(shù)

  • 產(chǎn)生指定范圍的數(shù)列

Shell 本身可以做整數(shù)運算,復(fù)雜一些的運算要通過外部命令實現(xiàn),比如 expr,bc,awk 等。另外,可通過 RANDOM 環(huán)境變量產(chǎn)生一個從 0 到 32767 的隨機數(shù),一些外部工具,比如 awk 可以通過 rand() 函數(shù)產(chǎn)生隨機數(shù)。而 seq 命令可以用來產(chǎn)生一個數(shù)列。下面對它們分別進行介紹。

整數(shù)運算

范例:對某個數(shù)加 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 之間有空格分開。如果進行乘法運算,需要對運算符進行轉(zhuǎn)義,否則 Shell 會把乘號解釋為通配符,導(dǎo)致語法錯誤; awk 后面的 $1 和 $2 分別指 $i 和 1,即從左往右的第 1 個和第 2 個數(shù)。

用 Shell 的內(nèi)置命令查看各個命令的類型如下:

$ 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 內(nèi)置命令,其他幾個是外部命令,都在 /usr/bin 目錄下。而 expr 和bc 因為剛用過,已經(jīng)加載在內(nèi)存的 hash 表中。

說明:如果要查看不同命令的幫助,對于 let 和 type 等 Shell 內(nèi)置命令,可以通過 Shell 的一個內(nèi)置命令 help 來查看相關(guān)幫助,而一些外部命令可以通過 Shell 的一個外部命令 man 來查看幫助,用法諸如內(nèi)置命令:help let,外部命令 :man expr 等。

腳本范例:從 1 加到某個數(shù)

#!/bin/bash
# calc.sh

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

說明:這里通過 while [ 條件表達式 ]; do .... done 循環(huán)來實現(xiàn)。-lt 是小于號 <

到此,相信大家對“shell編程數(shù)值運算有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI