Qual é a diferença entre bcl e expr?

0

Eu sei que ambos podem fazer aritmética simples. Eu estou querendo saber quando será mais fácil usar um contra o outro.

Eu sei que expr avalia uma expressão de seus argumentos, enquanto bcl avalia a partir do padrão, mas quais outras diferenças existem?

Especificamente, há alguma tarefa que se possa realizar, mas a outra não pode?

    
por Hurricane Hamilton 01.12.2016 / 23:27

1 resposta

3

Specifically, are there any tasks that one can perform, but the other can't?

Por um lado, bc suporta números grandes, enquanto expr termina em 2 ^ 63-1:

$ expr 9223372036854775807 + 1
-9223372036854775807

$ echo "9223372036854775807 + 1" | bc
9223372036854775808

bc também tem operações de exponenciação e raiz quadrada, que expr não possui totalmente:

$ echo "2^1024" | bc
17976931348623159077293051907890247336179769789423065727343008115773\
26758055009631327084773224075360211201138798713933576587897688144166\
22492847430639474124377767893424865485276302219601246094119453082952\
08500576883815068234246288147391311054082723716335051068458629823994\
7245938479716304835356329624224137216
$ echo "scale=100; sqrt(2)" | bc
1.414213562373095048801688724209698078569671875376948073176679737990\
7324784621070388503875343276415727
    
por 02.12.2016 / 02:23