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