Вопросы с тегом «arithmetic»

Этот тег предназначен для всего, что связано с математическими операциями. Поэтому, если вы хотите задать вопрос о выполнении вычислений в `awk`, или если у вас есть вопрос о` bc`, это правильный тег для использования.

295
Как выполнять целочисленные и плавающие вычисления в bash или других языках / фреймворках?

Использование echo "20+5"буквально производит текст " 20+5". Какую команду я могу использовать, чтобы получить числовую сумму, 25в этом случае? Кроме того, какой самый простой способ сделать это, просто используя bash для чисел с плавающей запятой? Например, echo $((3224/3807.0))печатает 0:(. Я ищу...

93
Есть ли способ получить минимум, максимум, медиану и среднее из списка чисел в одной команде?

У меня есть список номеров в файле, по одному в строке. Как я могу получить минимальные, максимальные, средние и средние значения? Я хочу использовать результаты в скрипте bash. Хотя моя непосредственная ситуация с целыми числами, решение для чисел с плавающей запятой было бы полезно в дальнейшем,...

47
Bash: двойное равен vs -eq

Я делаю целочисленное сравнение в bash (пытаясь увидеть, работает ли пользователь от имени пользователя root), и я нашел два разных способа сделать это: Двойной равно: if [ $UID == 0 ] then fi -eq if [ $UID -eq 0 ] then fi Я понимаю, что в bash нет> = или <=, только -ge и -le, так почему же...

46
Как создать последовательность с ведущими нулями, используя расширение скобки

Когда я использую следующее, я получаю ожидаемый результат: $ echo {8..10} 8 9 10 Как я могу использовать это расширение скобки простым способом, чтобы получить следующий результат? $ echo {8..10} 08 09 10 Я теперь, что это может быть получено с помощью seq(не пытался), но это не то, что я ищу....

37
Как убрать лидирующие нули из вывода 'date' или избежать восьмеричной интерпретации таких десятичных чисел?

У меня есть это: date +"%H hours and %M minutes" Я использую фестиваль, чтобы сказать это ... но он говорит как: "ноль девять часов" .. Я хочу, чтобы он сказал "девять часов"! но дата всегда дает мне 09 ... так что мне интересно, может ли bash легко превратить это в 9? в сложном сценарии я...

34
Что означает знак доллара, за которым следует квадратная скобка $ […] в bash?

Похоже, что $[expr]выполняет арифметическое расширение так же, как $((expr)). Но я не могу найти упоминания $[в руководстве по bash. Эта команда не дает результатов: gunzip -c /usr/share/man/man1/bash.1.gz | grep -E '\$\[' Что это за оператор и его поведение где-нибудь стандартизировано? Моя версия...

33
Выполнение простой математики в командной строке с использованием функций bash: $ 1, деленное на $ 2 (возможно, с использованием bc)

Иногда мне нужно разделить одно число на другое. Было бы здорово, если бы я мог просто определить функцию bash для этого. До сих пор я вынужден использовать такие выражения, как echo 'scale=25;65320/670' | bc но было бы здорово, если бы я мог определить функцию .bashrc, которая выглядела бы как...

30
Проверьте, находится ли $ REPLY в диапазоне чисел

Я пишу сценарий оболочки для Linux, используя Bash, для перевода любого видео-файла в MP4. Для этого я использую avconvс libvorbisаудио. Внутри моего скрипта у меня есть вопрос для пользователя: read -p "- Audio Quality [scale from -2 to 10] ? " if [ -n "$REPLY" ] ; then ABITRATE="-aq $REPLY" fi...

29
создание последовательности чисел, по одному на строку в файле

Есть ли способ создать из воздуха файл, представляющий собой последовательность чисел, начиная с заданного числа, по одному в строке? что-то типа magic_command start 100 lines 5 > b.txt а затем, b.txtбудет 100 101 102 103 104...

26
Как добавить арифметические переменные в скрипт

Я хочу накопить размер строки для ряда файлов, содержащихся в папке. Я написал следующий скрипт: let a=0 let num=0 for i in folder/* do num=`cat $i | wc -l` a=$a+$num done echo $a В конце скрипта я получаю 123 + 234 + 432 + ... а не результат арифметической операции...

20
Сравнение целых чисел: арифметическое выражение или условное выражение

В Bash два целых числа можно сравнить с помощью условного выражения arg1 OP arg2 OP является одним из -eq, -ne, -lt, -le, -gt, или -ge. Эти арифметические бинарные операторы возвращают true, если arg1 равно, не равно, меньше, меньше или равно, больше или больше или равно arg2 , соответственно. Arg1...

19
bash -e выходит, когда значение let или expr равно 0

У меня есть скрипт bash, который устанавливает -e, поэтому скрипт будет завершаться при любом состоянии выхода! = 0. Я пытаюсь сделать некоторую базовую арифметику оболочки, назначенную для переменных, и иногда выражение равно 0, что приводит к состоянию выхода команды let или expr, равному «1»....

17
Влияние на безопасность использования неанизированных данных в арифметической оценке Shell

В комментарии к недавнему вопросу Стефан Шазелас упоминает, что для арифметики с двойными круглыми скобками существуют последствия для безопасности, такие как: x=$((1-$x)) на большинстве снарядов. Мои навыки Google кажутся ржавыми, и я ничего не могу найти. Каковы последствия для безопасности...

16
Побитовый сдвиг и наибольшее целое число в Bash

Это вопрос исследования, то есть я не совсем уверен, о чем этот вопрос, но я думаю, что это самое большое целое число в Bash. Во всяком случае, я буду определять это реже. $ echo $((1<<8)) 256 Я делаю целое число, немного сдвигая. Как далеко я могу пойти? $ echo $((1<<80000)) 1 Не так...

13
Как увеличить локальную переменную в Bash?

Данные 1 \begin{document} 3 Код #!/bin/bash function getStart { local START="$(awk '/begin\{document\}/{ print NR; exit }' data.tex)" echo $START } START2=$(getStart) echo $START2 который возвращается, 2но я хочу 3. Я безуспешно изменяю конец этого ответа о том, как я могу добавить числа в сценарии...

13
Как округлить числа с плавающей точкой в ​​оболочке?

Как правильно округлить числа IEEE 754 с плавающей запятой в командной строке? Я хочу указать точность выходного числа - количество дробных цифр. Округление 6.66до точности 1должно дать 6.7, например. Больше в таблице ниже: Value Precision Rounded 6.66 0 7 6.66 1 6.7 6.66 2 6.66 6.66 3 6.660 6.666...