Решатель выражения командной строки?

Ответ 1.

$ssh user@server cat abc.txt

Ответ 2.

$ssh user@server "sed 's/^[    ]//g' Remote.txt"
8
14.12.2013, 04:00
7 ответов

до н.э и dc

bc и dc 2 калькулятора, которые я буду часто использовать при необходимости в доступе от терминала.

Примеры

$ 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'. 

Затем можно ввести вопросы:

2
2
5+5
10

Когда Вы сделаны, можно выйти с Ctrl+C.

Тест-драйв

Эти калькуляторы довольно многофункциональны.

масштабирование

scale=5
193 * 1/3
64.33333

уравнения

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

futurevalue
127.62800

Ваши примеры

8*6-4
44

8*(6-4)
16

calc

Если Вы хотите что-то немного более интерактивное существует calc.

Пример

$ 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
; 

Можно использовать/стрелки вниз для прохождения через прошлых команд, и это также имеет интерактивную справку.

; help

Дает Вам это:

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
    ...

Ссылки

7
27.01.2020, 20:08
  • 1
    Так как это не конкретный вопрос Ubuntu, возможно, свяжитесь с calc в восходящем направлении вместо к пакету Ubuntu? –  mattdm 17.12.2017, 17:15
  • 2
    @mattdm - спасибо добавило ту ссылку, я оставил другую ссылку просто b/c, я связывался со страницей справочника на calc, не обязательно пакетом человечности. Проверка –  slm♦ 18.12.2017, 03:13

Существует много ответов на Ваш вопрос...

Простые Вы могли сделать в оболочке.

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

Поскольку специализированная программа там bc.

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

Пользовательские функции с помощью сценариев? Ну, сценарии оболочки и до н.э у обоих есть они, в некотором роде. Зависит от того, как далеко Вы хотите взять его.

Почему не Python? Легко учиться.

$ python
>>> from math import atan
>>> 8*(6-4)+atan(0)
16.0
6
27.01.2020, 20:08
  • 1
    я на самом деле использовал Python для этого в последнее время, но это - причина, я хочу что-то еще. Это получает раздражающую необходимость импортировать что-то для каждой функции. Я надеялся больше на что-то автономное, как Speedcrunch (i.imgur.com/Cn6GejG.png), но командная строка, очевидно. –  Lucas Phillips 14.12.2013, 04:22
  • 2
    Можно решить проблему импорта путем определения переменной среды PYTHONSTARTUP и предварительного импорта материала в файле, на который указывает переменная. –  mkc 14.12.2013, 05:20

В zsh:

$ autoload zcalc  # best in ~/.zshrc
$ zcalc
1> 8*(6-4)
16
2> $1*2
32
5
27.01.2020, 20:08

Вот немного взлома удара, который позволит Вам сделать простую арифметику непосредственно на командной строке.

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

Затем можно сделать, например,

calc 3 * 15 + 5

К сожалению, это не играет хорошо с круглыми скобками. (Если я вспоминаю правильно, что можно заставить tcsh принимать их также, но я не мог бы убедить удар к.)

PS. Вы могли полагаться на удар для арифметики путем замены perl звоните с echo $(( $* )); но это даст Вам целочисленное деление для 5/6, и т.д. Арифметика Perl более полезна.

Альтернатива: Если Ваша единственная говядина с Python - то, что Вы должны import math, следующее является Вашим другом:

% alias calc='python -i -c "from math import *"'
% calc
>>> 5 * atan(0.25)
1
27.01.2020, 20:08
[12177]Maxima CAS[113508] : [12178] может быть запущена из консоли ( также есть версии окон, такие как wxMaxima [12179] поддерживает скрипты ( [113628] пакетный текстовый файл с расширением mac[113629])[12180] имеет множество встроенных функций [12181]HTH[113059].
2
27.01.2020, 20:08

Другой способ — использовать интерпретатор, такой как Python 3:

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

Преимущество в том, что вы можете написать все, что угодно, уже есть много функций (вы также можете импортировать cmath, если вам нужны комплексные числа ), вам не нужно устанавливать какую-либо точность для большинства случаев, и python уже установлен в большинстве установок Linux.

Python 3.x лучше подходит для общего калькулятора, чем Python 2.x, потому что Python 3.x выполняет деление с плавающей запятой, если результат не является целым числом.

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

Основным недостатком, по крайней мере для меня, является то, что числа с плавающей запятой не печатаются в научном представлении, если они не очень большие или маленькие, без строки формата:

> exp(35)
1586013452313430.8
> "{:e}".format(exp(35))
'1.586013e+15'
0
27.01.2020, 20:08

насекомое имеет как веб-версию, так и версию для терминала:

insect example usage

4
27.01.2020, 20:08

Теги

Похожие вопросы