Ⅰ 各位大哥大姐,問你們一個linux題,用shell程序設計一計算器,能夠實現基本算數運算
linux下有個bc計算器,直接調用bc命令,將所有的操作轉到bc操作就可以了。
Ⅱ 在linux編寫shell腳本運行時輸入a bc
一般以
#!/bin/sh
開頭(不是必須要寫,但一定要單獨一行),指定執行這個腳本的shell程序(也可以用#!/bin/zsh或其他),然後就是堆命令了。Linux的shell腳本支持很多功能,加上Linux高度模塊化的命令,完全可以用shell腳本寫出復雜的程序。
以上只是簡單介紹如何開始寫shell腳本,如果要寫復雜的腳本,還需要深入學習相關知識(如if——fi、case——esac等結構)。
當然,還需要給腳本加上可執行許可權(chmod +x ./file.sh),否則可以用
sh ./file.sh
方式執行腳本(這里的sh是執行腳本所需shell,命令也可以是zsh ./file.sh或其他)。
Ⅲ 如何在shell中對浮點數進行計算
在shell中具有最基本的數學計算能力,如可以使用expr 、let 。但這些都只能處理整形數據。為了要計算小數,就需要通過bc命令擴展。下面演示了一個例子,判斷輸出的參數類型,然後計算出它的平方.
#!/bin/sh
#filename: testbc
var=$1
dd=$(echo $var|bc 2>/dev/null )
if [ "$var" != "$dd" ] || [ "$var" == "" ]; then
echo "$var isn't number!"
elif echo $var | grep "/." > /dev/null 2>
then
#square=$(echo " $var * $var "|bc)
square=$(echo " $var * $var "|bc -l)
echo "$var is a float number,square is:$square"
else
square=$(echo "$var * $var" | bc)
echo "$var is a int number,square is:$square"
fi
執行腳本的結果如下:
$ testbc aaa
aaa isn't number!
$testbc 2
2 is a int number,square is:4
$testbc 1.5
1.5 is a float number,square is:2.25
如果要處理計算結果的精度,可以使用scale定義精度。可以這樣處理:
$ echo "scale=3; 1.55 * 1.55 " | bc -l
2.402
如果不定義精度,那麼1.55*1.55的值為:2.4025,因為我們定義了精度為3,所以就顯示了小數點後3位.
$ echo "1.55 * 1.55" | bc -l
2.4025
Ⅳ bc命令為什麼不能取小數點後的最後兩位shell。scale=2;2/11*100結果是18.00
你可以通過 printf 進行格式化輸出 或者 直接用別的方法把後兩位切掉
Ⅳ 如何退出bc,執行後續的shell語句
輸入 quit即可退出。
腳本中一般可以這樣:
變數名=`echo "sqrt(36)*3" |bc`
得到數值計算結果
Ⅵ shell 腳本如何提取整數部分
[root@localhost zhaoru]# bash shell.sh
1331.2
[root@localhost zhaoru]# cat shell.sh
#!/bin/bash
a=1.3
speed=`echo ${a}*1024 | bc`
echo $speed
Ⅶ shell 字元串為1+1,如何運行得到結果為2
可以用bc命令:
$echo"1+1"|bc
Ⅷ linux下如何在shell中執行小數的運算
bash不支持小數的運算。。你可以換python,perl,ruby試試。
Ⅸ linnux中的bash代表什麼意思就像bc代表計算器!
Bash=Bourne Again SHell。
shell就是linux的命令行終端,具體有各種不同的shell版本。
原來GNU有一個shell項目叫Bourn shell,後來他們搞了一個能夠兼容Bourn shell並且更強大的shell,就叫Bourne-Again SHell(二代Bourn shell)。也是英語的一個雙關語——Bourne again / born again(重生)