如何使用bash shell计算功率值

时间:2013-08-07 02:02:34

标签: bash shell

我们要计算2 ^(3.0)和2 ^( - 3.0)。感谢。

!/bin/bash
c=3.0
g=-3.0
c=$((2**$c)) #syntax error: invalid arithmetic operator (error token is ".0")
g=$((2**$g)) #syntax error: invalid arithmetic operator (error token is ".0")
echo "c=$c"
echo "g=$g"

3 个答案:

答案 0 :(得分:6)

Bash的内置算术仅对整数进行操作,并且不允许**运算符使用负指数。

有许多其他可用的工具可以执行浮点运算。例如:

$ c=3.0
$ g=-3.0
$ awk "BEGIN{print $c ** $c}"
27
$ awk "BEGIN{print $c ** $g}"
0.037037
$ perl -e "print $c ** $c, qq(\n), $c ** $g, qq(\n)"
27
0.037037037037037

将结果存储在变量中:

$ c=$(awk "BEGIN{print $c ** $c}")
$ echo $c
27

答案 1 :(得分:1)

使用perl和awk在线程中已有很好的答案。我们也可以使用python:

python -c "from sys import argv as a; print(pow(int(a[1]), int(a[2])))" 2 6

重复使用:

alias pow='python -c "from sys import argv as a; print(pow(int(a[1]), int(a[2])))"'
pow 2 6
pow 2 -2

答案 2 :(得分:0)

SELECT
    id
FROM
    records
WHERE
    dateofit BETWEEN '2017-12-01' AND '2018-02-28'