[20181229]bash shell的算術運算 .txt
[20181229]bash shell的算術運算 .txt
--//bash shell的算術運算現在已經改進許多,自己許多操作不熟悉,程式設計還是按照老方法處理,自己做一些總結.
1.使用let內部命令:
$ a=12
$ let a=a+1
$ echo $a
13
$ let a=a\*3
$ echo $a
39
--//還可以執行如下:
$ let "a+=1"
$ echo $a
40
--//這樣的方式最大的缺點是不能有空格.
2.使用expr命令:
--//這樣的方式要使用分開:
$ a=12
$ expr $a \* 4
48
$ b=$(expr $a + 13 )
$ echo $b
25
3.比較新的方式使用如下:
$(( expression ))
$[ expression ]
--//使用$(( expression ))
$ echo $(( a+ b))
25
$ echo $(( a+ b ))
25
$ echo $((a+b))
25
$ echo $(($a+$b))
25
--//使用$[ expression ]
$ echo $[a+b]
25
$ echo $[$a+b]
25
$ echo $[$a+$b]
25
$ echo $[$a*$b]
156
--//這樣的方式比較靈活,裡面可以加或者不加$符號,混合使用也可以.
--//我個人覺得$[ expression ]更好一些.另外就是的方式在if語句裡面語法寫出如下:
if [[ string expression ]]
then
command
fi
--//也可以使用如下語法:
if (( numeric expression ))
then
command
fi
--//以前比較數字使用:
#-eq 等於
#-ne 不等於
#-gt 大於
#-ge 大於等於
#-lt 小於
#-le 小於等於
--//感覺不直觀.每次我給查手冊.現在可以寫出如下:
$ cat a.sh
#!/bin/bash
a=100
if (( $a > 100 ))
then
echo "a is equal to $a"
else
echo "a is not equal"
fi
$ . a.sh
a is not equal
4.在複雜的運算建議使用外部命令bc.
5.還有一些進位制轉換,bash並不是很靈活,僅僅支援其它型別轉換為十進位制模式.而且首先必須宣告變數為整形.
--//2進位制
$ declare -i a
$ a=2#1001
$ echo $a
9
--//8進位制
$ a=8#17
$ echo $a
15
$ a=8#19
-bash: 8#19: value too great for base (error token is "8#19")
--//16進位制
$ a=16#FF
$ echo $a
255
$ a=16#f0
$ echo $a
240
--//10進位制轉換16進位制.
$ b=$(printf "%x" 240)
$ echo $b
f0
--//8進位制轉換10進位制.
$ b=$(printf "%d" 017)
$ echo $b
15
--//16進位制轉換10進位制.
b=$(printf "%d" 0xf0)
$ echo $b
240
--//其它10轉8,10轉2視乎無法使用printf.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2286893/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20201109]bash shell特殊算術方式.txt
- [20191010]bash行計算器.txt
- [20180930]bash shell &.txt
- Shell階段02 shell變數運算(整數運算/小數運算), shell變數案例變數
- [20230428]bash實現xor計算.txt
- [20210913]bash shell $* and $@ 的區別.txt
- [20210908]Reverse Shell with Bash.txt
- SHELL之數值運算
- shell加減乘除運算
- [20190929]bash使用bc計算的相關問題.txt
- [20201116]bash shell IO重定向.txt
- [20181212]bash shell 字串 補零.txt字串
- shell執行小數運算
- [20211009]使用bash計算sql語句的sql_id.txtSQL
- 算術運算子++、--的使用
- [20231123]函式與bash shell呼叫.txt函式
- [20230314]nc reverse bash shell alias.txt
- [20230310]nc reverse bash shell問題.txt
- [20210618]記錄bash shell執行的命令.txt
- [20191011]通過bash計算sql語句的sql_id.txtSQL
- Java算術運算子Java
- SCSS 算術運算子CSS
- 算術運算子裡的特殊運算子
- [20210324]bash shell value too great for base.txt
- [20231023]生成bbed的執行指令碼(bash shell).txt指令碼
- [20191012]使用bash從sql_id計算hash_value.txtSQL
- javascript怎麼實現算術加法運算JavaScript
- opencv入門系列教學(六)影像上的算術運算(加法、融合、按位運算)OpenCV
- [20181229]關於字串的分配問題.txt字串
- [20230309]nc reverse bash shell or cmd.exe(windows).txtWindows
- [20210330]bash使用source or ..呼叫shell指令碼注意txt指令碼
- [20231109]bash shell快捷鍵alt+number的問題.txt
- [20231029]使用cygwin調式bash shell引出的問題.txt
- [20231102]除錯bash shell指令碼遇到的問題.txt除錯指令碼
- [20210107]編寫bash shell指令碼遇到的問題.txt指令碼
- Python 影像處理 OpenCV (12): Roberts 運算元、 Prewitt 運算元、 Sobel 運算元和 Laplacian 運算元邊緣檢測技術PythonOpenCV
- opencv 開運算、閉運算OpenCV
- NumPy 簡單算術:加減乘除及其他運算