Shell expr的用法 bc 命令 let命令

Shell expr的用法  bc 命令   let命令html

 

數學運算shell

let命令  expr命令  bc命令  $(())   $[]bash

 

http://www.80ops.cn/archives/245.html函數

 

expr命令通常用於整數值,但也可用於字符串。spa

 

通常格式爲:expr argument operator argument
expr也是一個手工命令行計數器。
expr 10 + 10 等價於 echo 10 + 10|bc
20
expr 1500 – 900 等價於 echo 1500 – 900 |bc
2400
expr 30 / 3 等價於 echo 30 / 3|bc
10
expr 30 / 3 / 2 等價於 echo 30 / 3 / 2 |bc
5
(注意運算符左右都有空格 ,若是沒有空格表示是字符串鏈接)
使用乘號時,必須用反斜線屏蔽其特定含義。由於shell可能會誤解顯示星號的意義。
expr 30 \* 3 等價於 echo 30 \* 3 |bc
90
對於四則運算賦值操做
val2=10
val1=$(($val2 – 1)) 等價於 val1=$(expr $val2 – 1) 等價於 val1=$(echo $val2 – 1|bc)
echo $val1命令行

 

寫法也是比較多的code

 

expr最重要的仍是強大的字符串操做htm

一、提取指定字符的下標:expr index 內容 字符blog

例如
ind=`expr index "69lki" "k"`
echo $ind
4字符串


ind=`expr index "69lki" "k"`
echo $ind
4

 

二、提取字符串的子串:expr substr 內容 起始位置 終點位置

例如
con=`expr substr "689sdfwe" "1" 3`
echo $con
689



三、計算字符串的長度
例如
con=`expr length "sdf"`
echo $con
3


bash Shell let命令 (2008-10-21 10:18:43)轉載▼

http://blog.sina.com.cn/s/blog_5ac88b350100arnv.html
標籤: 雜談
整數運算通常經過 let 和 expr 這兩個指令來實現,如對變量 x 加 1 能夠寫做:let "x = $x + 1" 或者 x=`expr $x + 1‘,我的感受,兩者差很少,前者表達比較簡單,擇優用之

在bash中,let能夠用來作數值運算
bash-2.05b$ export n=20
bash-2.05b$ n=n+1
bash-2.05b$ echo $n
n+1
n+1並無按照數字處理,而是安裝字符串串連處理
這時候若是想實現n按照數值進行相加,則就須要let出手了
bash-2.05b$ export n=20
bash-2.05b$ let n+=1
bash-2.05b$ echo $n

在Bash Shell中,只能進行兩個整數間的運算,其結果仍爲整數.要進行算術
運算,須要使用let命令,語法爲:
let expr
expr是一個包含項和操做符的表達式,項能夠是一個變量或是一個整數常數,
當使用整數常數時,其默認爲十進制整數,用戶能夠用radio#number來指定其它
形式的整數,其中radio定義了整數是幾進製表示的,number是該整數的值.若
radio>10,那麼數字字符可從0-9和A-Z.
在表達式中支持的操做符及其含義爲:
+,-,*,/,% 加,減,乘,除,取模
>>,<<,&,^,| 左移,右移,位與,位異或,位或
?: 三元運算符.與C語言中的定義一致
~ 取補碼
!,>=,<=,>,<,==,!=,&&,||
=,+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=
表達式式中也可使用括號.括號或運算優先級的定義與通常計算機語言中的
相同.
let命令具備返回值.當計算結果(如有多個表達式時,以最後一個爲準)爲0時,
返回值爲1,不然爲0.
當表達式中含有shell的特殊字符(如|)時,須要用引用符('或")將其引用起來.
使用let時還須要注意的時,對於let x+y這樣的式子,shell雖然計算了x+y的值
但卻將結果丟棄,若不想這樣,可使用let sum=x+y將x+y的結果保存在變量sum中
另外還可使用((和))操做符取代let命令,並且這樣的話,還能夠省去對算術
表達式的引用,若是想返回表達式的值,則需用$(())的格式.

if的條件中,「=」用於比較字符串;「-eq」用於比較整型數。


bc 命令
bc命令是一種支持任意精度的交互執行的計算器語言。bash內置了對整數四則運算的支持,可是並不支持浮點運算,
而bc命令能夠很方便的進行浮點運算,固然整數運算也再也不話下。

 

-i:強制進入交互式模式;
-l:定義使用的標準數學庫;
-w:對POSIX bc的擴展給出警告信息;
-q:不打印正常的GNU bc環境信息;
-v:顯示指令版本信息;
-h:顯示指令的幫助信息。

參數
文件:指定包含計算任務的文件。


實例

算術操做高級運算bc命令它能夠執行浮點運算和一些高級函數:

echo "1.212*3" | bc 

3.636
設定小數精度(數值範圍)
echo "scale=2;3/8" | bc
0.37
參數scale=2是將bc輸出結果的小數位設置爲2位。

 

 

進制轉換

#!/bin/bash 
abc=192
echo "obase=2;$abc" | bc
執行結果爲:11000000,這是用bc將十進制轉換成二進制。
#
!/bin/bash a
bc=11000000

echo "obase=10;ibase=2;$abc" | bc
執行結果爲:192,這是用bc將二進制轉換爲十進制。

 


計算平方和平方根:

echo "10^10" | bc 

echo "sqrt(100)" | bc
相關文章
相關標籤/搜索