Ich bin ziemlich neu im Bash-Scripting. Ich versuche, Berechnungen zu erarbeiten, und was ich gerade versuche, ist ein Skript zu schreiben, das mir erlaubt, einen Parameter einzugeben, und dass mein Skript die Potenz von 2 für diesen Parameter berechnet.
Also sag ich würde versuchen
%Vor% Mein Skript würde 2^3=8
Ich versuche es mit
%Vor%aber das tut nichts. Gibt es einen Befehl, die Macht von etwas zu berechnen, von dem ich nichts weiß?
Es ist erwähnenswert, dass Sie einen Überlauf beobachten, wenn das Ergebnis LONG_MAX
überschreitet:
(Beobachten Sie das Ergebnis, wenn der Wert 2 63 -1 übersteigt)
Sie können stattdessen etwas verwenden, das eine arithmetische Berechnung mit beliebiger Genauigkeit erlaubt, da Sie dieses Limit möglicherweise ziemlich schnell erreichen, wenn Sie Rechenleistung haben. Zum Beispiel könnten Sie bc
verwenden (und Sie könnten auch ^
verwenden!):
Nur zum Spaß können Sie auch bitweise Verschiebungen verwenden (natürlich funktioniert das nur für eine Basis mit einer Potenz von 2):
%Vor%Stelle sicher, dass du devnulls Vorbehalte bezüglich Überläufen gelesen hast.
Die anderen Antworten sind völlig korrekt, und wenn Sie mit ganzzahligen Werten arbeiten, stellen Sie die beste Möglichkeit für diese Art von Berechnung dar. Aber es ist erwähnenswert, dass Bash Arithmetik nicht mit nicht ganzzahligen Werten zu tun hat .
Wenn Sie eine solche Ganzzahlarithmetik benötigen, können Sie das Dienstprogramm bc
verwenden. Wenn Sie beispielsweise die 3. Potenz von 2.5 benötigen, können Sie dies tun:
Beachten Sie, dass die Variable scale
builtin die Anzahl der Dezimalstellen angibt, in denen Berechnungen durchgeführt werden sollen.
Tags und Links bash