Por que isso não é 'expr… | bc -l 'comando funcionando?

0

Estou percebendo um erro:

bash: syntax error near unexpected token '-105.5*7+50*3'

Ao executar o script / expressão abaixo:

expr (-105.5*7+50*3)/20 + (19^2)/7 | bc -l

Existe alguma outra maneira de avaliar tais operações matemáticas / ponto flutuante?

EDIT # 1

OBSERVAÇÃO: echo no lugar de expr resolve isso, mas eu usei expr com bc antes e ele manipulou flutuadores normalmente porque não neste cenário é o que eu gostaria de descobrir agora.

    
por snoopy 31.10.2014 / 11:01

1 resposta

1

É possível que antes você tenha colocado aspas em torno dos parâmetros expr , assim:

$ expr '(-105.5*7+50*3)/20 + (19^2)/7' | bc -l
22.14642857142857142857

?

Nesse caso, expr não realiza operações aritméticas e apenas imprime a expressão original:

$ expr '(-105.5*7+50*3)/20 + (19^2)/7'        
(-105.5*7+50*3)/20 + (19^2)/7

Todos os cálculos acontecem no bc -l e o comando inteiro fornece a resposta correta (embora expr funcione como echo ).

    
por 01.05.2015 / 17:30