日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell 数学运算

發布時間:2024/4/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell 数学运算 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數學運算之 expr

expr操作符對照表

?

?

比較大小,只能對整數進行比較,需要加空格,linux 保留關鍵字要轉義

num1=30 num2=50 expr $num1 \> $num2

?

查看上一條命令有沒有執行成功

echo $?

返回0 成功,其他失敗

小于、小于等于、大于等于

expr $num1 \< $num2 expr $num1 \<= $num2 expr $num1 \>= $num2

?

?

運算 加、減、乘、除

# 加 num1=17 num2=5 expr $num1 + $num2# 減 num3=`expr $num1 + $num2` echo $num3expr $num1 - $num2# 乘 expr $num1 \* $num2 expr $num1 / $num2# 取余數 expr $num1 % $num2

  

?

?需要注意事項:

兩個小括號的計算方法,要賦值,否則會報錯

# 直接輸出報錯 $(($num1+$num2))# 需要賦值給一個變量 num3=$(($num1+$num2)) echo $num3num3=$(($num1*$num2)) echo $num3num3=$(($num1-$num2)) echo $num3num3=$(($num1/$num2)) echo $num3

 

?

?

一些操作符在$(()) 不支持, 在比較運算的時候最好使用expr

num1=5 num2=5 num3=$(($num1=$num2))

?

expr $num1 = $num2

?

練習例子  

提示用戶輸入一個正整數num,然后計算1+2+3+...+num的值;必須對num是否為正整數做判斷,不符合應當運行再次輸入

?

判斷是否是一個正整數

思路:

  • expr只能對整數進行計算,直接用expr 和一個整數計算獲取 $? 的值來判斷是否為整數
  • 在使用 expr $num1 \> 0 判斷是否大于0
# 不是整數使用 expr 進行數學運算會出錯 num1=56.58 expr $num1 + 1

  

?

sum.sh

?

#!/bin/bash # while true doread -p "please input a positive number: " num# 判斷數是否是整數expr $num + 1 &> /dev/nullif [ $? -eq 0 ];then# 判斷這個整數是否大于0,大于0返回1if [ `expr $num \> 0` -eq 1 ];then#echo "yes,positive number"# $sum沒有賦值,默認為0for((i=1;i<=$num;i++))dosum=`expr $sum + $i`doneecho "1+2+3+...+$num = $sum"# 執行計算需要退出exitfifiecho "error,input enlegal"continue done

?

執行腳本

sh sum.sh

?

shell 運算之 bc

bc 介紹:

  • bc 是bash內建的運算器,支持浮點數運算
  • 內建變量scale可以設置,默認為 0

bc 操作符對照表

?

?交互測試

?

?

?

腳本中使用管道符進行計算

echo "23+33" | bc

?

保留精度 scale=4; 用分號隔開

echo "scale=4;23.3/3.5" | bc

?

bc示例腳本

bc.sh

#!/bin/bash #read -p "num1: " num1 read -p "num2: " num2#echo "scale=4;$num1/$num2" | bcnum3=`echo "scale=4;$num1/$num2" | bc`echo "$num1 / $num2 = $num3"

?

執行

sh bc.sh

?

?

  

?

轉載于:https://www.cnblogs.com/crazymagic/p/11071871.html

總結

以上是生活随笔為你收集整理的shell 数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。