# install pythonp
python -m pip install pythonp
pythonp "5*5"
25
pythonp "1 / (1+math.exp(0.5))"
0.3775406687981454
# define a custom function and pass it to another higher-order function
pythonp "n=10;functools.reduce(lambda x,y:x*y, range(1,n+1))"
3628800
8条答案
按热度按时间jm2pwxwz1#
是的,您可以使用bash's built-in Arithmetic Expansion
$(( ))
进行一些简单的计算有关运算符的完整列表,请查看Bash参考手册中的Shell算术部分。
为了完整性起见,正如其他人指出的,如果需要任意精度,
bc
或dc
会更好。omjgkv6w2#
对于更高级和更精确的数学,请考虑使用bc(1)。
ax6ht2ek3#
内部方法
Bash支持arithmetic expansion和
$(( expression ))
。例如:外部方法
许多实用程序都提供算术运算,包括 bc 和 expr。
2j4z5cfb4#
经典的解决方案是:
expr
只适用于整数操作数。另一个不错的选项是:dc
可用于非整数操作数。pb3s4cty5#
一个简单的shell函数(不需要
sed
)就可以解释“5X5”ars1skjm6#
我使用的函数使用
bc
,因此支持浮点计算:示例:
Bash的算术扩展不支持浮点数(但Korn shell和zsh支持)。
示例:
o7jaxewo7#
我有一个简单的脚本用于此:
me@mycomputer:~$ cat /usr/local/bin/c
它将
x
更改为*
,因为*
是shell中的特殊字符。使用方法如下:c 5x5
c 5-4.2 + 1
c '(5 + 5) * 30'
(如果表达式包含任何括号,则仍需使用引号)。k97glaaz8#
如果你喜欢python并且可以选择安装一个包,你可以使用我做的这个utility。