Shell脚本:提升权力

时间:2012-10-28 18:58:03

标签: shell exponential

你如何将m提高到n的幂?我到处搜索过这个。我发现写m ** n应该有效,但事实并非如此。我正在使用#!/ bin / sh

6 个答案:

答案 0 :(得分:23)

使用$ n ** $ m确实有效。 也许您没有使用正确的语法来评估数学表达式。 以下是我在Bash上获得结果的方法:

echo $(($n**$m))

echo $[$n**$m]

这里的方括号并不像if语句中的测试赋值器那样你也可以使用它们而不用空格。我个人更喜欢使用圆括号的前一种语法。

答案 1 :(得分:21)

我会尝试计算器bc。有关详细信息和示例,请参阅http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-bc.html

例如。

$ echo '6^6' | bc

给予权力6。

答案 2 :(得分:7)

使用bc是一个优雅的解决方案。如果你想在bash中这样做:

$ n=7
$ m=5

$ for ((i=1, pow=n; i<m; i++)); do ((pow *= n)); done
$ echo $pow
16807

$ echo "$n^$m" | bc  # just to verify the answer
16807

答案 3 :(得分:3)

您可以使用直流。此

dc -e "2 3 ^ p"

产量

8

答案 4 :(得分:0)

我的系统管理员未安装dc,因此添加其他正确答案后,我敢打赌您没有想到这一点-

a=2
b=3
python -c "print ($a**$b)"
>> 8

在bash / shell中工作。

答案 5 :(得分:0)

#! /bin/bash
echo "Enter the number to be done"
n=2
read m
let P=( $n**$m )
echo "The answer is $p"

答案

Enter the number to be done
3
The answer is 8