Estou procurando uma calculadora que possa fazer cálculos no próprio terminal sem outros prefixos e sufixos extras.
Por exemplo: Se eu digitar algo como 10000-9000 no terminal, a resposta deve sair como 1000.
Mais uma vez estou dizendo, só preciso de uma calculadora rápida no terminal, sem nenhum caractere adicionado. Eu sei que se eu mudar para Python, ele pode fazer isso, mas não o quero dessa maneira.
command_not_found
gancho e tentar alimentar o comando combc
/calc
/ qualquer que seja, se parecer vagamente com matemática. Ainda parece um pouco sujo, no entanto.Respostas:
Aritmética do Bash
Outra solução possível é adicionar uma função simples à aritmética integrada do Bash. Coloque isso no seu
.bashrc
arquivo para tentar:Então agora você não precisa
$((...))
mais, apenas o=
que parece bastante natural.Substituição
Outra coisa se você quiser ser ainda mais rápido: você pode substituí-lo
p
por+
ex
por*
. Isso funcionará para isso:Agora você nem precisa Shiftmais, a única coisa que está
=
na frente da aritmética.Saída hexadecimal
A saída pode ser exibida em decimal e hexadecimal, se desejado. ( Nota : o uso de
x
substituição entrará em conflito com a0x...
sintaxe hexadecimal)Exemplo:
Usando
bc
Se você quiser cálculos um pouco mais avançados, você pode canalizá-lo para
bc
assim:As funções fornecidas por
bc
são as seguintes (e podem ser encontradas emman bc
):Ele também suporta
if
,for
,while
e variáveis como uma linguagem de programação que se pode ser melhor para escrever para um arquivo se você queria isso.Tenha em mente que ele vai substituir
p
ex
em função / variável nomes. Pode ser melhor apenas remover as substituições.Usando
gcalccmd
Você também pode fazer a chamada de função
gcalccmd
(degnome-calculator
) da seguinte maneira:As funções disponíveis parecem ser (tiradas diretamente do código fonte ),
==
denotam funções equivalentes:fonte
gcalccmd
não funciona muito bem. Ele mostraError 3
provavelmente por causa de que os espaços em branco na rua. No entanto este ligeiramente modificada funcionou perfeitamente para mim:echo -e "$calc\nquit"| gcalccmd | sed "s:^> ::g"
function = { R -q --vanilla -e "$@" | grep -E '[^>](.*)' -o -x --color=never }
= 2 + 0x20
34 (0x22)
Você pode fazer aritmética inteira simples de forma nativa no bash usando a
((...))
sintaxe, por exemploHá também a
bc
calculadora, que pode aceitar expressões aritméticas na entrada padrãoO
bc
programa também pode fazer aritmética de ponto flutuantefonte
calc()
NL{
NLecho "$@" | bc
NL em}
que NL é uma nova linha. Em seguida, você pode digitarcalc 1234 + 768
(impressões2002
) ou qualquer outra fórmula quebc
possa interpretar. Você pode, é claro, usar qualquer nome de função, apenas achei que secalc
encaixava perfeitamente com o que isso faz.echo
:bc <<< "2*2"
Você pode usar
calc
. Não está instalado por padrão, mas você pode instalá-lo rapidamente usando o seguinte comando:Após a instalação, você pode fazer qualquer cálculo que desejar:
Para obter mais informações, consulte sua página de manual
fonte
man calc
ecalc help
diz tudo.calc help builtin
para ver uma lista de funções suportadas comosin()
Infelizmente, não há uma maneira "mais fácil" de fazer isso. A interface python interativa na linha de comando é a mais adequada para o que você precisa, porque, ao contrário de
apcalc
\,python
está incluído no Ubuntu. Não tenho certeza sebc
ainda está incluído, no entanto, python é o favorito direto para essas coisas.Você pode simplesmente executar a
python
interface interativa na linha de comando e fazer as contas dessa maneira. Você pode usar isso como sua calculadora.Para isso, abra o terminal, digite
python
e pressione o Enterbotão.Em seguida, no prompt do python que aparece, você pode digitar sua matemática. Por exemplo
10000 - 9000
,. A próxima saída de linha é o resultado.No entanto, se você quer dizer algo em que você apenas carrega o terminal e pode fazer isso ...
... então não há como fazer isso apenas no terminal sem mais nada, porque o Bash não lida com argumentos numéricos como esse.
fonte
ipython
é um pouco mais útil que o shell Python padrão quando se trata de fazer cálculos e coisas do gênero.Eu aconselho você a criar uma função simples para cálculos básicos em Python. Algo assim no seu
.bashrc
:Se você deseja fazer cálculos mais avançados, pode usar o seguinte, que importa todas as
math
funções do módulo. (veja aqui para mais informações)(Nota: Como o Python é uma linguagem de programação, algumas coisas podem parecer estranhas, por exemplo,
**
para potências e%
módulos)Como alternativa, você pode criar um script Python
calc
,coloque-o em um diretório incluído na
PATH
variável e defina seu sinalizador executável para obter o mesmocalc
comando acima (não é necessário criar uma função Bash para executar um script Python).Se você deseja um método no Bash puro, use a resposta da chave de aço. Essa resposta só é realmente benéfica se você precisar das funções mais avançadas (ou seja, de
math
), pois o Python é relativamente lento comparado ao Bash.Não tenho certeza se isso interrompe sua "mudança para python, isso pode ser feito e eu não a quero dessa maneira". observe, mas você não precisa digitar o prompt interativo e o resultado pode ser acessado no Bash, portanto esta resposta parece válida (pelo menos para mim).
fonte
c
,?
ou+
?), assim você vai ter que cada terminal de abrir.python2 -c "from __future__ import division; from math import *; print($*)"
caso contrário ele irá sempre divisão inteira, por exemplo, paracalc 5/2
que você iria ficar2
em vez de2.5
. Veja aqui para referência: stackoverflow.com/a/183870/202504pi
ee
. Sinto que colocar isso como um script separado é mais flexível e portátil. Aqui está uma essência simples para isso: gist.github.com/jasongeng/279eb396c01e74beb9efUse o pacote
gcalccmd
fromgnome-calculator
(> = 13.04) ougcalctool
(<13.04). Eu acho que o pacote está instalado por padrãofonte
man gcalccmd
diz: uma calculadora de console . Simplesmente, é exatamente o OP quer .. :)./bash_aliases
comoalias calc='gcalccmd'
ou se você quiser fazer cálculos pontuais (com resposta imediata), você pode adicionaralias calc='gnome-calculator -s'
- o uso deste último:calc 2000/1300
oucalc 2+3
. Nesse caso, não há necessidade de sair da calculadora - apenas fornece uma resposta e você não precisa digitarquit
.Aqui está um rápido shell script para isso:
Salve isso como "c", coloque-o em algum lugar do seu caminho (como / bin) e marque-o como executável.
A partir de agora, você pode executar cálculos no terminal assim:
fonte
echo "$@" | bc
em vez de modo que você pode colocar espaços em cálculos mais naturalmente=
vez de,c
o nome desse comando? O Bash permite que você use isso como o nome de uma função.~/bin
(diretório de sua casabin
) e garantir que ele/home/yourname/bin
esteja no seuPATH
.Aqui está uma modificação da parte apropriada do
/etc/bash.bashrc
(no Ubuntu 10.04) que modificará ocommand_not_found
manipulador para executar o avaliador de expressão do shell se o primeiro caractere do comando desconhecido for um número ou-
ou+
.Você poderá fazer qualquer aritmética de shell dessa maneira; consulte http://www.gnu.org/software/bash/manual/bashref.html#Shell-Arithmetic para obter uma lista dos operadores aritméticos.
Observe que, se a expressão que você deseja avaliar contiver a
*
, será necessário citar as aspas*
with\
ou, pois o shell fará a expansão do nome do arquivo antes de decidir qual comando executar. O mesmo vale para outros operadores>>
.Coloque isso no seu
~/.bashrc
, digite. ~/.bashrc
e experimente.Exemplo de saída: (Estou digitando
cta
, um erro de digitação, apenas para testar se nosso novo manipulador command_not_found ainda tentará procurar comandos desconhecidos).fonte
echo $(( $@ ))
e alterá-la para, em vez disso, executar um dos programas de calculadora mais avançados que outros atendentes mencionaram que usam seus argumentos na linha de comando.Outra solução que não vi mencionada aqui é o Qalculate (qalc) .
para a versão CLI,
para a GUI.
Possui vários recursos, como:
20 m / s * 12 h = 864 kilom
pi
,e
,c
,avogadro
sin(pi) = 0
,gamma(4) = 6
,5! = 120
,log(1024, 2) = 10
(x + y)^2 = x^2 + 2xy + y^2
integrate 3*x^2 = x^3
,diff sin(x), pi
help convert
,help integrate
factorial(5)
efaculteit(5)
.Você diz que deseja usá-lo sem prefixos, bem ... você pode usá-lo com um prefixo:
$ qalc 5 ft + 3 cm
(5 * foot) + (3 * centim) = 1.554 m
bem como executá-lo como um substituto.
fonte
dc
! Faz parte do coreutils, por isso é instalado no OS X, Ubuntu e praticamente TUDO. É uma calculadora RPN; portanto, se você não gosta, não é para você.Comandos muito básicos são os seguintes (a página de manual tem toda a sintaxe que eu não incluí. Exponenciação, alguém?)
Você só precisa de espaços entre os números. Eles são ignorados em todos os outros casos.
Digitar um número o empurra para o topo da pilha.
fonte
42 * 5
em um terminal, e tê-lo de saída a resposta1+1
um terminal quase nunca funciona. Portanto, sua resposta é muito bemEu uso o Octave para esse tipo de coisa: http://www.gnu.org/software/octave/
É praticamente um clone do matlab (desculpas se isso for uma simplificação excessiva) que pode ser usado no terminal digitando oitava. Instale o sudo apt-get install oitava
Não é exatamente o que você quer, mas pensei em adicioná-lo como uma alternativa ao python.
Exemplo de uso:
fonte
Eu gosto muito do wcalc. É uma calculadora científica de linha de comando. Fácil de encontrar no Ubuntu Software Center, ou apenas use o apt-get.
Ele aceita argumentos de linha de comando e possui o modo "shell":
E se alguém estiver em engenharia, como eu, você poderá usar o GNU Octave. Ele pode fazer todo tipo de coisa, fazer gráficos, resolver equações simultâneas. Além disso, é uma alternativa gratuita ao Matlab
fonte
=() { wcalc "$@" }
maneira simples é chamar python.
Exemplo:
fonte
python -c 'import math;print math.log(2)'
O que eu descobri é que não posso confiar nas opções expr, bc ou Shell incorporadas. Por isso, usei o Perl, que normalmente seria instalado nos distros * linux
O cálculo acima subtrairá $ VAL1 de $ VAL2 e será impresso sem casas decimais (0f)
O benefício de usar o Perl é (detalhes de prós e contras listados aqui )
fonte
Você pode adicionar a seguinte função ao seu arquivo .bashrc:
Observe que a
-l
bandeira é muito importante. Sem ele, o uso debc
dá5 / 2 = 2
.Como foi mencionado acima, os cálculos podem ser feitos usando o
=
sinal na frente da fórmula.fonte
Você também pode usar o awk para fazer alguns cálculos aritméticos no terminal,
fonte
use o comando "bc" e então você pode fazer o cálculo
exemplo
Para usar
bc
sem a nota de garantia, escreva no terminalbc -q
exemplo
fonte
Você pode usar bind e bash C-ae C-epara controlar a saída. Por exemplo, execute isso no seu shell:
Agora digite qualquer operação aritmética como 10 + 15 e pressione Ctrl+ J:
Você vai conseguir isso. Agora, como é feito?
bind
este comando altera a ligação do seu bash, como teclas de atalho.\C-j
este é o equivalente do bash a Ctrl + J; é a combinação de teclas que gostaríamos de adicionar ao nosso comando.\C-a
isso nos leva ao início da linha.echo $((
isso escreveecho $((
no início.\C-e
nos leva até o fim da linha))
fecha nosso parêntese anterior\C-m
isso é equivalente a retornar a chave.Você pode escrever isso em seu
~/.inputrc
arquivo:Obviamente, as outras respostas também são válidas! Apenas alterei um pouco:
"\C-j": "\C-aecho " \C-e " | bc \C-m"
"\C-j": "\C-acacl \C-m"
"\C-j": "\C-apython3 -c "print( \C-e )" \C-m"
Você pode alterar Ctrl + J para o que quiser, mas lembre-se, tente não alterá-lo para algo que já tenha uma ligação;).
Recurso:
fonte
No passado, eu usei
wcalc
e um pequeno programa chamadoe
que é praticamente impossível pesquisar no Google. Agora eu uso um script python para fazer isso, que usa alguns recursose
como colchetes.wcalc
ainda é bom porque pode fazer precisão arbitrária e conversão de unidades, mas quase nunca uso esses recursos.Veja como usá-lo (supondo que o script tenha sido salvo
e
e colocado em algum lugar no$PATH
):fonte
Existe uma maneira de realizar exatamente o que você deseja. Tudo o que você precisa fazer é definir
shell
para a sua conta/bin/bc
.fonte
Você também pode usar o
printf
shell interno para fazer cálculos aritméticos no terminal.Exemplo:
fonte
Você pode usar o interpretador python para cálculo. Aqui está um tutorial sobre como fazer isso .
Python 2 e python 3 são instalados no Ubuntu por padrão.
fonte
Criar uma calculadora de terminal
Coloque o seguinte no seu arquivo .bashrc
Ou execute-o no prompt do shell. Agora "calc" do shell funcionará da seguinte maneira:
Todas as funções com "(" ou ")" devem estar entre aspas.
fonte