Сценарии оболочки: поднять к власти
Как вы поднимаете м в степени п? Я искал это везде. Я обнаружил, что написание 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
так что добавляя к другим правильным ответам, держу пари, вы не подумали об этом -
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