Использование bc
:
#!/bin/bash
n="$@"
bc <<< "${n// /+}"
Предположим, что сценарий называется add
, или для тех, кто предпочитает простой код, попробуйте эту рабочую функцию оболочки: add () {n = "$ @"; bc ; это работает следующим образом:
add 3.2 5.5
add 3.2 5.5 8.9
add {1..51}.{12..89}
В фигурных скобках используется bash
расширение скобок для создания около 4000 строк, которые bc
интерпретируются как десятичные числа в диапазоне от 1,12 на 51,89 .
Вывод:
8.7
17.6
105436.89
Обратите внимание, что нет необходимости проверять наличие двух аргументов; он может добавить один или несколько аргументов.
Убедитесь, что опция MENU_COMPLETE
отключена:
setopt nomenucomplete
MENU_COMPLETE
(-Y)
При неоднозначном завершении вместо вывода списка возможностей или звукового сигнала немедленно вставьте первое совпадение. Затем, когда снова запрашивается завершение, удалите первое совпадение и вставьте второе совпадение и т. д. Когда совпадений больше нет, снова вернитесь к первому совпадению.
reverse-menu-complete
может использоваться для перебора списка в другом направлении. Этот параметр имеет приоритет надAUTO_MENU
.
Один из способов сделать это — использовать инфраструктуру zsh. Рекомендую ой -мой -зш , так как сам им пользуюсь.
При этом нажатие на вкладку один раз покажет все возможности, а повторное нажатие войдет в режим выбора, где возможности будут отображаться в подсказке, и вы можете переключаться между ними не только с помощью табуляции, но и с помощью клавиш со стрелками.