後で使用するために `bc`関数を定義する方法は?

後で使用するために `bc`関数を定義する方法は?

私はいつもbcそれがやや不思議で面白いと思いました。これはその一つです。これオリジナルのUNIXプログラム。それ自体がプログラミング言語です。だから私はそれを使う機会があることを嬉しく思います。bc階乗関数が含まれていないようで、次のように定義したいと思います。

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

しかし...再利用することはできませんか?私は次のことができるようにしたいと思います。

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

ベストアンサー1

このようなファイルに関数定義を保存してfactorial.bc実行します。

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

bc継承関数が実行時に常にロードされるようにするには、bcシェルスクリプトまたは関数ラッパーバイナリ(スクリプトや関数が一番いいですか?どのように使用するかによって異なります。)

スクリプト(bc、入れる~/bin

#!/bin/sh

/usr/bin/bc ~/factorial.bc << EOF
$*
EOF

機能(シェルrcファイルに入れる)

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

~からbcPOSIX仕様:

指定されたファイルから入力を受け取り、標準入力から読み込みます。

おすすめ記事