Biểu thức giải quyết dòng lệnh?


8

Tôi đang tìm kiếm một máy tính dựa trên TTY tương thích với Linux. Ví dụ:

user@host:~$ calculate
> 2
2
user@host:~$ calculate
> 8*6-4
44
user@host:~$ calculate
> 8*(6-4)
16

Có bất cứ điều gì như thế này hỗ trợ các hoạt động cơ bản, một số chức năng tích hợp sẵn atan()và có thể là các chức năng tùy chỉnh thông qua tập lệnh không?

Câu trả lời:


7

bc & dc

bcdclà 2 máy tính mà tôi thường sử dụng khi cần truy cập từ thiết bị đầu cuối.

Ví dụ

$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 

Sau đó, bạn có thể nhập câu hỏi của bạn:

2
2
5+5
10

Khi bạn hoàn thành, bạn có thể thoát ra bằng Ctrl+ C.

Lái thử

Các máy tính này là tính năng khá phong phú.

nhân rộng

scale=5
193 * 1/3
64.33333

phương trình

principal=100
ir = 0.05
years = 5
futurevalue = principal * (1 + ir)^years

futurevalue
127.62800

ví dụ của bạn

8*6-4
44

8*(6-4)
16

calc

Nếu bạn muốn một cái gì đó tương tác nhiều hơn một chút calc.

Thí dụ

$ calc
C-style arbitrary precision calculator (version 2.12.4.4)
Calc is open software. For license details type:  help copyright
[Type "exit" to exit, or "help" for help.]

; 10+10
20
; 8*6-4
    44
; 8*(6-4)
    16
; 

Bạn có thể sử dụng các mũi tên lên / xuống để đi qua các lệnh trong quá khứ và nó cũng có trợ giúp tương tác.

; help

Cung cấp cho bạn điều này:

For more information while running calc, type  help  followed by one of the
following topics:

    topic               description
    -----               -----------
    intro               introduction to calc
    overview            overview of calc
    help                this file

    assoc               using associations
    builtin             builtin functions
    command             top level commands
    config              configuration parameters
    custom              information about the custom builtin interface
    define              how to define functions
    environment         how environment variables effect calc
    errorcodes          calc generated error codes
    expression          expression sequences
    file                using files
    history             command history
    interrupt           how interrupts are handled
    list                using lists
    mat                 using matrices
    ...

Người giới thiệu


Vì đây không phải là một câu hỏi dành riêng cho Ubuntu, có thể liên kết với calc ngược dòng thay vì gói Ubuntu?
mattdm

@mattdm - cảm ơn đã thêm liên kết đó, tôi đã rời khỏi liên kết khác chỉ đơn giản là tôi đang liên kết đến một trang người đàn ông trên calc, không nhất thiết phải là gói ubfox.
slm

6

Có rất nhiều câu trả lời cho câu hỏi của bạn ...

Những cái đơn giản bạn có thể làm trong vỏ.

$ echo $((8*(6-4)))
16

Là một chương trình dành riêng có bc.

$ echo "8*(6-4)" | bc
16

Chức năng tùy chỉnh thông qua kịch bản? Vâng, theo một cách nào đó, shell script và bc đều có chúng. Phụ thuộc vào khoảng cách bạn muốn đưa nó.

Tại sao không phải là Python? Thật dễ để học.

$ python
>>> from math import atan
>>> 8*(6-4)+atan(0)
16.0

Gần đây tôi thực sự đã sử dụng Python, nhưng đó là lý do tôi muốn thứ khác. Nó gây khó chịu khi phải nhập một cái gì đó cho mọi chức năng. Tôi đã hy vọng nhiều hơn cho một cái gì đó khép kín, như Speedcrunch ( i.imgur.com/Cn6GejG.png ), nhưng dòng lệnh rõ ràng.
Lucas Phillips

1
Bạn có thể giải quyết vấn đề nhập bằng cách xác định biến môi trường PYTHONSTARTUP và nhập trước các công cụ trong tệp được chỉ ra bởi biến.
mkc



2

Tối đa CAS :

   L (t): = exp (% i * t * 2 *% pi); / * vòng tròn đơn vị được tham số hóa với góc lần lượt * /
   lô2d (
   [atan2 (fantpart (L (x)), realpart (L (x)))],
   [x, 0,1],
   [y, -2 *% pi, 2 *% pi],
   [lô_format, gnuplot],
   [gnuplot_term, "png"],
   [gnuplot thừng_file, "atan2.png"],
   [truyền thuyết, "atan2"],
   [xlabel, "góc tính theo radian"], 
   [ylabel, "góc tính theo radian"],
   [gnuplot_preamble, "
   đặt phím trên cùng bên trái;
   đặt xtics ('pi / 2' 0,25, 'pi' 0,5, '3pi / 2' 0,75, '2pi' 1.0);
   đặt phân tích ('-2pi' -6.283, '-pi' -3,1415, '-pi / 2' -1,5708, '0' 0, 'pi / 2' 1.5708, 'pi' 3.1415, '2pi' 6.283);
   đặt phân tích phân tích lưới "]
  );

HTH


1

Đây là một bản bash nhỏ sẽ cho phép bạn thực hiện số học đơn giản trực tiếp trên dòng lệnh.

alias calc='set -o noglob; docalc'
function docalc { perl -e "print STDOUT $*, \"\\n\""; set +o noglob; }

Sau đó, bạn có thể làm, ví dụ,

calc 3 * 15 + 5

Thật không may, nó không chơi tốt với dấu ngoặc đơn. (Nếu tôi nhớ lại một cách chính xác, bạn cũng có thể khiến tcsh chấp nhận những điều đó, nhưng tôi không thể thuyết phục bash.)

Tái bút Bạn có thể dựa vào bash cho số học, bằng cách thay thế perlcuộc gọi bằng echo $(( $* )); nhưng điều đó sẽ cung cấp cho bạn phép chia số nguyên 5/6, v.v. Số học của Perl hữu ích hơn.

Thay thế: Nếu thịt bò duy nhất của bạn với trăn là bạn cần import math, sau đây là bạn của bạn:

% alias calc='python -i -c "from math import *"'
% calc
>>> 5 * atan(0.25)

0

Một cách khác là sử dụng trình thông dịch như Python 3:

$ python3
> from math import *
> 213/53*exp(0.8)/asin(3)
9.645423462356044

Có lợi thế, bạn có thể viết kịch bản mọi thứ, có sẵn nhiều chức năng (bạn cũng có thể nhập cmathnếu bạn cần số phức), bạn không cần đặt bất kỳ độ chính xác nào cho hầu hết các trường hợp và python đã được cài đặt trên hầu hết các cài đặt Linux.

Python 3.x tốt hơn cho máy tính chung so với Python 2.x, vì Python 3.x thực hiện phân chia dấu phẩy nếu kết quả không phải là int.

$ python3
> 3/2
1.5
$ python2
> 3/2
1

Nhược điểm lớn nhất, đối với tôi, ít nhất là, phao không được in trong ký hiệu khoa học nếu không có lớn hay nhỏ, không có chuỗi định dạng:

> exp(35)
1586013452313430.8
> "{:e}".format(exp(35))
'1.586013e+15'
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.