如何在 bash 中将数字提高到非整数指数?
例如,这个:
echo $((10**0.25))
在 zsh
中工作,但在 Bash 中它给出以下错误:
-bash:10**0.25:语法错误:无效的算术运算符(错误标记为".25")
Bash 仅支持整数算术。您有很多选择,其中之一是awk
:
awk 'BEGIN {print 10**0.25}'
旧的
待机bc
也可以工作
$ echo "e(0.25*l(10))" | bc -l
1.77827941003892280121
根据手册,Bash 以固定宽度的整数计算外壳算术。您需要使用更强大的功能,例如 perl
:
perl -e 'print 10**.25'
另一种选择是octave
:
octave --silent --eval '10 ^ 0.25'