提高bash的非整数指数?

bec*_*cko 2 math floating-point bash

如何在bash中将数字提高到非整数指数?

例如,这:

 echo $((10**0.25))
Run Code Online (Sandbox Code Playgroud)

可以在中运行zsh,但在Bash中会出现以下错误:

-bash:10 ** 0.25:语法错误:无效的算术运算符(错误标记为“ .25”)

Mar*_*oun 6

Bash仅支持整数算术。您有许多选择,其中之一是awk

awk 'BEGIN {print 10**0.25}'
Run Code Online (Sandbox Code Playgroud)

  • @becko:`y = $(awk“ BEGIN {print 10 ** $ x}”)``或稍强一些的`y = $(awk -v“ x = $ x”'BEGIN {print 10 ** x} ')` (3认同)

Dav*_*ica 5

好的旧备用机bc也可以

$ echo "e(0.25*l(10))" | bc -l
1.77827941003892280121
Run Code Online (Sandbox Code Playgroud)