34

你如何提高mn 次方?我到处寻找这个。我发现写作m**n应该有效,但事实并非如此。我正在使用#!/bin/sh.

4

6 回答 6

36

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

例如。

$ echo '6^6' | bc

给出 6 的 6 次方。

于 2012-10-28T19:01:31.860 回答
33

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

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

或者

echo $[$n**$m]

这里的方括号并不像 if 语句中的测试评估器,所以你也可以在没有空格的情况下使用它们。我个人更喜欢带圆括号的前一种语法。

于 2015-02-11T21:15:49.033 回答
9

usingbc是一个优雅的解决方案。如果您想在 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
于 2012-10-29T11:32:53.857 回答
4

您可能会使用直流电。这

dc -e "2 3 ^ p"

产量

8
于 2012-10-28T19:03:23.560 回答
1

我的系统管理员没有安装dc,所以添加了其他正确答案,我敢打赌你没有想到这一点 -

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

在 bash/shell 中工作。

于 2018-10-20T19:16:40.930 回答
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 
于 2019-09-30T10:54:11.727 回答