Сценарии оболочки: поднять к власти

Как вы поднимаете м в степени п? Я искал это везде. Я обнаружил, что написание m**n должно работать, но это не так. Я использую #!/ Bin/sh

7 ответов

Решение

Я бы попробовал калькулятор до н.э. См. http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-bc.html для получения дополнительной информации и примеров.

например.

$ echo '6^6' | bc

Дает 6 степени 6.

Использование $n**$m действительно работает. Возможно, вы не используете правильный синтаксис для вычисления математического выражения. Вот как я получаю результат на Bash:

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

или же

echo $[$n**$m]

Квадратные скобки здесь не должны походить на оценщик тестов в операторе if, так что вы можете использовать их без пробелов. Я лично предпочитаю первый синтаксис с круглыми скобками.

С помощью 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

Вы можете использовать DC. это

dc -e "2 3 ^ p"

доходность

8

Мой системный администратор не установил dc так что добавляя к другим правильным ответам, держу пари, вы не подумали об этом -

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

работает в bash/shell.

      #!/bin/bash
echo "Enter a number "
read n
echo "Enter exponent "
read ex
echo "RESULT " 
R=$[$n**$ex]
echo "$n power $ex is $R

echo "I hope this has worked for you guys."
#! /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 
Другие вопросы по тегам