web-dev-qa-db-ja.com

シェルスクリプト:力を高める

どのようにmをn乗しますか?私はこれをどこでも検索しました。私が見つけたのは、m ** nを書くことはうまくいくはずですが、うまくいかないということです。 #!/ bin/shを使用しています

21
Linas

電卓bcを試してみます。詳細と例については、 http://www.basicallytech.com/blog/index.php?/archives/23-command-line-calculations-using-bc.html を参照してください。

例えば。

$ echo '6^6' | bc

6の累乗を6にします。

22
Brian Agnew

本当に$ n ** $ mを使用しても効果があります。たぶん、あなたは正しい構文を使って数式を評価しないでしょう。 Bashで結果を取得する方法は次のとおりです。

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

または

echo $[$n**$m]

ここの角括弧は、ifステートメントのテストエバリュエーターのようなものではないため、スペースなしでも使用できます。個人的には、丸括弧で囲まれた前者の構文を好みます。

23
Gianni

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
7
glenn jackman

Dcを使用できます。この

dc -e "2 3 ^ p"

利回り

8
3
unutbu

私のシステム管理者はdcをインストールしなかったので、他の正解に追加します。これについて考えたことはないと思います。

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

bash/Shellで動作します。

1
markroxor