1. 程式人生 > >linux BC命令列計算器

linux BC命令列計算器

1. 基本用法:

$ bc <<< 5*4
20
$ bc <<< 5+4
9
$ bc <<< 5-4
1
或者
$ echo "5*4" | bc
20
$ echo "5+4" | bc
9
$ echo "5-4" | bc
1

也可以把算式寫到檔案裡面,然後一次計算。
$ cat calcFile 
5+5
6+7

$ bc < calcFile 
10
13

也可以使用HERE 命令:

$ bc << HERE
> 1+4
> 4-1
> 2*4
> HERE
5
3
8

可以使用內建的變數 last 引用上一次的結果:

$ echo "5-4;last+6" | bc
1
7
last 也可以用 點號代替:
$ echo "5-4;.+6" | bc
1
7

2. 浮點數運算:

可以使用scale指定小數點之後的位數(預設為0,即整數)

$ echo "sqrt(10)" | bc
3
$ echo "scale=1;sqrt(10)" | bc
3.1
$ echo "scale=10;sqrt(10)" | bc
3.1622776601

有時候得不到指定的位數:

$ echo "scale=10; 1.25*9" | bc
11.25
此時,可以修改為:
$ echo "scale=10; 1.25*9/1" | bc
11.2500000000

3. 數制轉換:

可以使用變數 ibase表示轉換前數字的數制;obase表示轉換後數字的數制

$ echo 'obase=16;128' | bc
80

$ echo 'ibase=16;obase=A;80' | bc
128
$ echo 'obase=2;128' | bc
10000000
$ echo 'ibase=2;obase=A;10000000' | bc
128
$ echo "obase=10;ibase=16;80" | bc
128

4. 指數運算:

$ echo "5^5" | bc
3125
$ echo "(5^5)^5" | bc
298023223876953125
記得第一個指數運算的結果要新增括號。

5. 基於函式庫的運算

bc支援以下函式:

s(x): 正弦函式(x為弧度)

c(x): 餘弦函式(x為弧度)

a(x): 反正切函式(結果為弧度)

l(x):  自然對數函式

e(x): 以e為底的指數函式

j(n,x):  貝賽爾函式

此時,bc要加上 -l 引數 (此時,  scale 為20)

計算 log1.5(2) (以 1.5為底,2的對數):

$ echo "l(2)/l(1.5)" | bc -l
1.70951129135145477699

也可以用 awk命令:
$ awk 'BEGIN {printf "%1l.9f\n", log(2)/log(1.5)}'
1.709511291

6. 指令碼函式程式設計:

$ cat calc_prog 
print "Enter a number A\n"; a = read()

print "Enter another number B\n"; b = read()

if (b == a) {

print "B = A\n";

}

if (a < b) {

print "B > A\n";

}

if (a > b) {

print "B < A\n";

}

$ bc -l calc_prog

7. 指令碼模擬計算器:
$ cat calc.sh 
#!/bin/bash

bc << END
scale=2
[email protected]
END
$ ./test.sh  1+2
3

參考:

相關推薦

linux BC命令計算器

1. 基本用法: $ bc <<< 5*4 20 $ bc <<< 5+4 9 $ bc <<< 5-4 1或者$ echo "5*4" | bc 20 $ echo "5+4" | bc 9 $ echo "5-4"

一步步打造自己的linux命令計算器

相信很多人,在工作中會需要使用到計算器。一般的做法是,開啟並使用系統自帶的計算器。 這種做法可能對我來說,有如下幾個問題。 太慢。每次需要開啟計算器,然後改成程式設計模式,手工選擇進位制,再使用輸入表示式進行計算。 需要切換視窗。程式設計時經常是在終端中,使用GUI計算器則意味著要離開終端,計算完畢再切換回

轉自: linux svn命令無法拉取中文名稱的檔案

轉自: https://blog.csdn.net/shaohui/article/details/3996274#commentBox   svn: Can't convert string from 'UTF-8' to&

Linux——Linux系統命令獲取公網IP的方法

今天介紹一些檢視linux系統公網IP的方法 1.通過訪問ipconfig.co來檢視。 命令列如下: #更多用法訪問ifconfig.co wget -qO - ifconfig.co 2.通過curl來獲取IP 如果沒有curl,要先下載安裝curl sudo yum i

筆記搬到部落格 - linux命令的一般代理設定方法

經過網路搜尋、整理、實踐筆記 linux純命令列的一般代理設定方法   在profile檔案中設定相關環境變數 # vi /etc/profile http_proxy=192.168.10.91:3128 # 分別指定http、https、ftp協議使用的代理伺服器地

linux使用命令配置顯示器的輸出解析度

說明:有時候圖形管理中最高的解析度被設定得很小,看著螢幕難受 1.顯示自己機器支援的解析度。以我自己的機器來說,最大支援8k,但設定的時候往往不能這麼大,因為還受到顯示器的解析度限制。綠色的VGA-0就是你的系統顯示的名字,留待後用 [[email protected] g

linux 使用命令代理

在爬取國外被[]牆網站資料時,就必須使用命令列代理了,要不然就得在國外買一臺伺服器跑了。。 1、首先你需要有一把梯子,梯子教程不講,[滑稽] pip insatll shadowsocks 2、然後配置shadowsocks(一個json格式檔案): { "serv

Linux-bc命令(21)

bc 命令是任意精度計算器語言,通常在linux下當計算器用。 它類似基本的計算器, 使用這個計算器可以做基本的數學運算。 bc支援運算有以下幾種: + - * / % :加,減,乘,除,取餘 a^b :       取a的b方 &&

關於Arch Linux efibootmgr 命令引數問題

相關連結: https://wiki.archlinux.org/index.php/EFISTUB   今天安裝Arch Linux 在 efibootmgr建立啟動項時,總是提示 UUID=xxxx not found 找不到裝置的錯誤,無法啟動系統   官方文件對這個命令的說

【小問題集03】-linux網路命令-持續更新

1 網口ip配置及啟用【命令列】 sudo ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up 2 網口配置【配置檔案】 Linux裡面有兩套管理網路連線的方案: (1)/etc/network/interfac

Linux系統命令整理

1、pwd  檢視當前所在目錄 2、cd /  跳往根目錄 3、ls  檢視當前目錄所有子目錄或檔案 4、ls -l  列出當前目錄詳細資訊 5、ls -lh  h=human 人性化列出當前目錄詳細資訊 6、cd ..  回到上一級 7

Linux Eclipse 命令(終端)啟動正常使用,sh 指令碼執行後不能正常使用問題

原因還是執行環境問題,類似windows中的環境變數,如果windows中環境變數沒設定也不能直接敲java執行   第一鍾:   在執行的sh指令碼中新增 source /etc/profile 命令,讓指令碼在每次執行時,重新設定一遍環境變數 第二種:   在eclipse執行目錄下找

Linux shell命令

快速切換成GNOME終端:Ctrl + Alt +T 在新的Konsole Terminal視窗中啟動一個新的shell會話(New Window):Ctrl + Shift + M  退出Konsole Terminal(Quit):Ctrl + Shift + Q  顯示出s

快捷鍵--快速操作Linux終端命令

 其他控制鍵:   Ctrl+s:使終端發呆,靜止,可以使快速輸出的終端螢幕停下來。   Ctrl+q:退出Ctrl+s引起的發呆。   Ctrl+z:使正在執行在終端的任務,運行於後臺。 (可用fg恢復)

Linux命令模式下執行命令

Linux系統登入環境 在Linux預設的登入的模式中,主要分為兩種,一種是純文字介面的登入環境,另一種則是圖形介面的登入環境。 ●Linux預設提供6個終端介面來讓使用者登入,切換的方式為:[Ctrl]+[Alt]+[F1]~[F6]。系統會按[F1]~[

linux命令進入mysql出錯

###1. mysql command not found 原因:這是由於系統預設會查詢/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是對映一個連結到/usr/bin目錄下,相當於建立一個連結檔案。 首先得知道mysql

Linux常用命令學習(不斷補充...)

建立資料夾 mkdir <資料夾名稱> 列出當前路徑下的資料夾和檔案 ls /*(list)簡單列出當前路徑下的資料夾和檔案*/ ls -l /*列出當前路徑下資料夾和檔案(包括作者、許可權、建立時間等詳細資訊)*/ 進入當前路徑下的資料夾 cd <資料夾名

Linux/Unix 命令選項前的一橫(-)、兩橫(--)和沒橫

在使用 Linux/Unix 命令的時候,我們可能會對其五花八門的選項表示形式感到困惑,比如: ls -l ls --size ps aux 我們可以發現,這三個命令的選項都有不同的風格,有的是一個

Linux命令中EOF的用法

EOF是END Of File的縮寫,表示自定義終止符。 既然自定義,那麼EOF就不是固定的,可以隨意設定別名。 在linux按ctrl-d就代表EOF。 EOF一般會配合cat能夠多行文字輸出. 其用

Linux終端命令的常用快捷鍵

history 顯示命令歷史列表 ↑(Ctrl+p) 顯示上一條命令 ↓(Ctrl+n) 顯示下一條命令 !num 執行命令歷史列表的第num條命令 !! 執行上一條命令 Ctrl+a 移動到當前行的開頭 Ctrl+e 移動到當前行的結尾 Esc+b 移動到當前