У меня есть переменные, и я хочу найти значение одного, деленное на другое. Какие команды следует использовать для этого?
Как я могу разделить консоль Linux?
Ответ 1
В оболочке bash объемные арифметические выражения с $(( ... ))
$ echo $(( 7 / 3 ))
2
Хотя я думаю, что вы ограничены целыми числами.
Ответ 2
echo 5/2 | bc -l
+2,50000000000000000000
эта опция '-l' в 'bc' допускает плавающие результаты
Ответ 3
Лучше всего использовать "bc", калькулятор произвольной точности.
variable=$(echo "OPTIONS; OPERATIONS" | bc)
ex:
my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)
где "шкала = 5" - точность.
man bc
поставляется с несколькими примерами использования.
Ответ 4
Я по-прежнему предпочитаю использовать dc, который является калькулятором RPN, поэтому быстрый сеанс для разделения 67 на 18 с точностью 4 цифры будет выглядеть как
>dc
4k
67
18/p
3.7222
q
>
Очевидно, гораздо более доступно: man dc
Ответ 5
Вы можете использовать awk, который является утилитой/языком, предназначенным для извлечения данных
например. для 1.2/3.4
>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941
Ответ 6
В bash, если вам не нужны десятичные числа в вашем разделе, вы можете сделать:
>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
Ответ 7
Я предполагаю, что консоль Linux означает Bash.
Если X
и Y
являются вашими переменными, $(($X / $Y))
возвращает то, что вы просите.
Ответ 8
Пример целочисленного деления с использованием bash для деления $a на $b:
echo $((a/b))
Ответ 9
Что-то еще, что вы могли бы сделать, используя ответ raytrace. Вы можете использовать stdout другого вызова оболочки, используя обратные выходы, чтобы выполнить некоторые вычисления. Например, я хотел узнать размер файла из 100 лучших строк из нескольких файлов. Исходный размер от wc -c
находится в байтах, я хочу знать килобайты. Вот что я сделал:
echo `cat * | head -n 100 | wc -c` / 1024 | bc -l
Ответ 10
Вам следует попробовать:
echo "scale=4;$variablename/3"|bc
Ответ 11
вы также можете использовать perl -e
perl -e 'print 67/8'
Ответ 12
У меня также была та же проблема. Легко разделить целочисленные числа, но десятичные числа не так-то просто.
если у вас есть 2 числа, такие как 3.14 и 2.35 и затем разделите числа,
код будет Div = echo 3.14 / 2.35 | bc
echo "$ Division"
кавычки разные. Не путайте, он расположен под кнопкой esc на клавиатуре.
Единственная разница - это | bc, а также здесь echo работает как оператор для арифметических вычислений вместо печати.
Итак, я добавил echo "$ Division" для печати значения. Дайте мне знать, если это сработает для вас. Спасибо.