我总觉得bc有些神秘和耐人寻味。这是一个在原来的Unix程序。它本身就是一种编程语言。所以我很乐意抓住任何我能找到的机会来使用它。
由于 bc 似乎不包括阶乘函数,我想定义一个这样的:
define fact(x) {
if (x>1) {
return (x * fact(x-1))
}
return (1)
}
Run Code Online (Sandbox Code Playgroud)
但是......我不能重复使用它,是吗?
我希望能够做类似的事情
me@home$ bc <<< "1/fact(937)"
Run Code Online (Sandbox Code Playgroud)
jw0*_*013 11
将您的函数定义保存在类似 的文件中factorial.bc,然后运行
bc factorial.bc <<< '1/fact(937)'
Run Code Online (Sandbox Code Playgroud)
如果您希望在运行时始终加载阶乘函数bc,我建议bc使用 shell 脚本或函数包装二进制文件(脚本或函数是否最好取决于您想如何使用它)。
bc, 放入~/bin)#!/bin/sh
/usr/bin/bc ~/factorial.bc << EOF
$*
EOF
Run Code Online (Sandbox Code Playgroud)
bc () {
command bc ~/factorial.bc << EOF
$*
EOF
}
Run Code Online (Sandbox Code Playgroud)
它应该从给定的任何文件中获取输入,然后从标准输入中读取。