我总是发现bc
一种神秘而有趣的东西。这是一个在原来的Unix程序。它本身就是一种编程语言。因此,我很高兴能有机会找到使用它的机会。
由于bc似乎不包含阶乘函数,因此我想这样定义一个:
define fact(x) {
if (x>1) {
return (x * fact(x-1))
}
return (1)
}
但是...我不能再使用了,可以吗?
我希望能够做类似的事情
me@home$ bc <<< "1/fact(937)"
我总是发现bc
一种神秘而有趣的东西。这是一个在原来的Unix程序。它本身就是一种编程语言。因此,我很高兴能有机会找到使用它的机会。
由于bc似乎不包含阶乘函数,因此我想这样定义一个:
define fact(x) {
if (x>1) {
return (x * fact(x-1))
}
return (1)
}
但是...我不能再使用了,可以吗?
我希望能够做类似的事情
me@home$ bc <<< "1/fact(937)"
Answers:
将函数定义保存在类似的文件中factorial.bc
,然后运行
bc factorial.bc <<< '1/fact(937)'
如果您希望阶乘函数在运行时始终加载bc
,我建议bc
用shell脚本或函数包装二进制文件(脚本或函数是否最佳取决于您的使用方式)。
bc
,放入~/bin
)#!/bin/sh
bc ~/factorial.bc << EOF
$@
EOF
bc () {
bc ~/factorial.bc << EOF
$@
EOF
}
根据bc
POSIX规范:
它应从给定的任何文件中获取输入,然后从标准输入中读取。