Как определить функцию `bc` для последующего использования?

Я всегда считал bc таинственным и интригующим. Это была одна из оригинальных программ Unix. И это язык программирования для себя. Поэтому я с радостью беру любой шанс найти его.

Поскольку bc, похоже, не включает факториальную функцию, я хочу определить ее так:

 define fact(x) { if (x>1) { return (x * fact(x-1)) } return (1) } 

Но … Я не могу повторить это, не так ли?

Я бы хотел сделать что-то вроде

 me@home$ bc <<< "1/fact(937)" 

One Solution collect form web for “Как определить функцию `bc` для последующего использования?”

Сохраните определения функций в файле, например factorial.bc , а затем запустите

 bc factorial.bc <<< '1/fact(937)' 

Если вы хотите, чтобы факториальная функция всегда загружалась при запуске bc , я бы предложил обернуть двоичный код bc скриптом или функцией оболочки ( лучше всего зависит от того , какой сценарий или функция зависит от того, как вы хотите его использовать).

Сценарий ( bc , чтобы положить ~/bin )

 #!/bin/sh bc ~/factorial.bc << EOF $@ EOF 

Функция (для вставки файла оболочки rc)

 bc () { bc ~/factorial.bc << EOF $@ EOF } 

Из спецификаций bc POSIX :

Он должен принимать данные от любых файлов, а затем читать со стандартного ввода.

  • Выполнение арифметики с плавающей запятой в определениях переменных сценария оболочки
  • Оценка выражения и округление до трех десятичных знаков
  • Есть ли способ получить минимальный, максимальный, средний и средний список чисел в одной команде?
  • Как суммировать массив чисел bash (некоторые в научной нотации)?
  • Разница трубопроводов grep -c с различным регулярным выражением до bc
  • Вычислить переменную и вывести ее на другую переменную
  • как добавить калькулятор командной строки в bash, который использует запятую как десятичную метку?
  • bc удаляет десятичную точку
  • bc выводит двоичный код, как куски, разделенные пробелами
  • Как разделить список значений на число в командной строке?
  • Почему bc выходит 0 при делении на 0?
  • Interesting Posts

    «Echo> / sys / …» не вступает в силу при использовании> / dev / null 2> & 1

    Как бороться с заранее упакованной программой, не придерживающейся правила молчания?

    Как проверить, включено ли сжатие SSH?

    Как включить Acer Aspire One 725 0802 touchpad & F Keys?

    Управление графическим интерфейсом Gnome через Bash?

    Сбой приложения PHP: дочерние pid-выходы с нелегальной инструкцией (4)

    Измерять задержки ввода-вывода на диске для выполняемого процесса

    В Fedora, как отключить предложения автоматического словаря?

    BTRFS – Рейд неполный после балансировки

    Как я могу удаленно получить доступ к веб-сайту интрасети из внешней сети через туннель SSH?

    Как я могу получить информацию о том, следует ли помнить пароль?

    Конвертировать год-месяц-день в день недели в имени файла

    X.org работает без сокета в chroot?

    Как избежать столкновения / загрязнения пространства имен в сценарии, предназначенном для поиска?

    Что означают цифры в скобках для вывода iptables-save?

    Linux и Unix - лучшая ОС в мире.