Tôi có thể làm toán cơ bản ở Bash không?


Câu trả lời:


21

Chỉ cần gõ bcvào thiết bị đầu cuối. Sau đó gõ tất cả các công cụ toán học sau đó.

bclà viết tắt của " b asic c alculator"

Sau đó nhập quitvà nhập để thoát.


2
Nói rõ hơn, nó sẽ như thế: echo 25-5 | bc
Medhat Helmy

Đối với một số vấn đề toán học, bạn có thể cần phải gói nó trong dấu ngoặc kép, chẳng hạn nhưecho '0.6 * 12' | bc
Ngỗng

bạn cũng có thể cần thêm tỷ lệ để hoạt động chính xác của dấu phẩy độngecho "scale=2;557/3672" | bc
CpILL

60

Nếu chúng ta thực sự nói về Bash, không phải Bourne Shell (sh) hay các loại vỏ khác, thật dễ dàng.

Bash có thể tính toán các biểu thức cơ bản với $ ((biểu thức)) và đây là một ví dụ về cách bạn có thể muốn sử dụng nó:

 a = 3
 b = 4
 c = $ ((7 * a + b))
 tiếng vang $ c

hoặc để sử dụng tương tác, chỉ cần

 tiếng vang $ ((7 * 3 + 4))

Nó dường như là bash thích hợp, vì điều đó làm việc. Tôi đang tham gia vào một trong những cụm trường đại học của mình
Kurru

4
Các $((expression))cú pháp là một phần của POSIX shtiêu chuẩn, và có nguồn gốc từ ksh.
geekizard

6
Bash chỉ có thể làm số học số nguyên. Nó không thể thực hiện số học dấu phẩy động như ksh93 hoặc zsh
fpmurphy

3
Đây phải là câu trả lời được chấp nhận.
Andreas Hartmann

10

Có một số tiện ích dòng lệnh để thực hiện các phép tính đơn giản:

$ expr 100 \* 4
400

$ echo '100 * 4' | bc
400

để chỉ tên hai trong số họ. Hãy cẩn thận thực hiện phép nhân như thể bạn không thoát khỏi * vỏ của bạn có thể thử và diễn giải nó như một ký tự đại diện.



7

Vâng câu hỏi của bạn đã được trả lời, nhưng hãy xem xét điều này:

Hầu hết các bản phân phối linux đã cài đặt sẵn python, vậy tại sao không sử dụng nó?

Chỉ loại

python

trong thiết bị đầu cuối và sau đó thực hiện tất cả các số học bạn muốn, như

2+2

Sẽ xuất 4 :)

Bạn cũng có thể làm điều này trực tiếp từ thiết bị đầu cuối với -cđối số python.

python -c 'print 2+2'

Trên máy tính của tôi, gõ pythonmất gần hai giây để bắt đầu. Khá khó chịu nếu bạn chỉ muốn làm một cái gì đó đơn giản như 2 + 2.
ShreevatsaR

sử dụng python3 nếu bạn không muốn làm tròn số float. ví dụ 2 / 30(python: 0) (python3: 0.06666666666666667)
hrvoj3e

và nếu bạn chỉ cài đặt python3, nhưng muốn làm tròn, hãy sử dụng 2//30hoặcint(2/30)
mazunki

3

Hoặc Ruby. :)

Mặc dù nó có thể không được cài đặt sẵn, nhưng nó khá nhanh.

irb, rồi 2+2.

Hoặc chỉ ruby -e 'p 2+2'


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.