Что такое разница между bcl и expr?

Я знаю, что они оба могут выполнять простую арифметику. Мне интересно, когда будет проще использовать одно по сравнению с другим.

Я знаю, что expr оценивает выражение по его аргументам, тогда как bcl оценивает по стандарту in, но какие еще есть отличия?

В частности, есть ли какие-то задачи, которые может выполнять один, а другой - нет?

0
02.12.2016, 00:27
1 ответ

В частности, есть ли задачи, которые один может выполнить, а другой - нет?

Во-первых, bc поддерживает большие числа, в то время как expr достигает максимума в 2 ^ 63-1:

$ expr 9223372036854775807 + 1
-9223372036854775807

$ echo "9223372036854775807 + 1" | bc
9223372036854775808

bc также имеет операции возведения в степень и извлечения квадратного корня, которые полностью отсутствуют в expr :

$ echo "2^1024" | bc
17976931348623159077293051907890247336179769789423065727343008115773\
26758055009631327084773224075360211201138798713933576587897688144166\
22492847430639474124377767893424865485276302219601246094119453082952\
08500576883815068234246288147391311054082723716335051068458629823994\
7245938479716304835356329624224137216
$ echo "scale=100; sqrt(2)" | bc
1.414213562373095048801688724209698078569671875376948073176679737990\
7324784621070388503875343276415727
2
28.01.2020, 02:34

Теги

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