Konvertieren Sie String in Integer in Bash

Abdul Mateen 20 Juni 2023
  1. Mathematische Operationen auf String
  2. Verwenden Sie den Befehl expr, um String in Integer umzuwandeln
  3. Verwenden Sie das Konstrukt für doppelte Klammern ((...)), um eine Zeichenfolge in eine Ganzzahl umzuwandeln
  4. Verwenden Sie den einfachen Rechnerbefehl (bc), um eine Zeichenfolge in eine Ganzzahl umzuwandeln
  5. Verwenden Sie den Befehl awk, um String in Integer umzuwandeln
  6. Verwenden Sie perl...print oder perl...say, um String in Integer umzuwandeln
  7. Verwenden Sie Python, um String in Integer umzuwandeln
Konvertieren Sie String in Integer in Bash

In diesem Tutorial wird die Konvertierung von Zeichenfolgen in Ganzzahlen im Bash-Skript erläutert. Zuerst werden wir Probleme mit den mathematischen Operationen an Strings besprechen, und dann werden wir sehen, wie man einen String in eine ganze Zahl umwandelt.

Mathematische Operationen auf String

Beginnen wir unsere Diskussion mit diesem einfachen Code:

x_value=1000
y_value=20
echo $x_value+$y_value

Die Ausgabe dieses Codes ist möglicherweise unerwartet. Siehe Ausgabe:

1000+20

Der Befehl echo verkettet den Wert der Variablen x_value mit einem Pluszeichen und der Variablen y_value. Wahrscheinlich waren Sie nicht daran interessiert, diese Ausgabe zu erhalten; Sie haben vielmehr als Ausgabe 1020 erwartet.

Lassen Sie uns nach der Erörterung des Problems Möglichkeiten untersuchen, es zu vermeiden und die gewünschten Ergebnisse zu erzielen.

Verwenden Sie den Befehl expr, um String in Integer umzuwandeln

Dieser Befehl wird verwendet, um Ausdrücke auszuwerten und die Ergebnisse zu erhalten. Zum Beispiel:

$ expr 12 - 8

Die Ausgabe dieses Befehls ist 4. Wir können diesen Befehl verwenden, um unser gewünschtes Ergebnis zu erhalten:

x_value=1000
y_value=20
expr $x_value + $y_value

Die Ausgabe dieses Skripts ist 1020; Beachten Sie jedoch, dass zwischen der Variablen und dem Operator Leerzeichen erforderlich sind. Andernfalls führt dieser Befehl auch eine Verkettung durch, und das Ergebnis ist dasselbe.

Hinweis: Es ist zwingend erforderlich, zwischen den Operanden und Operatoren die richtigen Leerzeichen hinzuzufügen. Es erleichtert expr, jeden Token separat zu erkennen.

Verwenden Sie das Konstrukt für doppelte Klammern ((...)), um eine Zeichenfolge in eine Ganzzahl umzuwandeln

Der Doppelklammer-Konstruktor (( ... )) erlaubt arithmetische Erweiterung und Auswertung; Beispiel: x_value=$(( 6 - 2 )) würde x_value auf 4 setzen. Wir können dieses Konstrukt verwenden, um unser gewünschtes Ergebnis zu erhalten.

Schauen wir uns ein Beispielskript an:

x_value=1000
y_value=20
echo $(( x_value * y_value ))

Die Ausgabe dieses Skripts ist 20000.

Verwenden Sie den einfachen Rechnerbefehl (bc), um eine Zeichenfolge in eine Ganzzahl umzuwandeln

In Bash wird der Basisrechner (bc) verwendet, um grundlegende arithmetische Berechnungen direkt von der Bash-Befehlsschnittstelle aus durchzuführen.

Wir können zum Beispiel schreiben:

$ echo "12-4" | bc

Der Ausgang ist 8. Wir können diesen einfachen Rechner verwenden, um unsere erforderlichen Ergebnisse zu erhalten.

Der Code zur Lösung unseres ursprünglichen Problems mit bc sieht so aus:

x_value=1000
y_value=20
echo $x_value-$y_value | bc

Die Ausgabe ist 980. In diesem Ausdruck sind keine Leerzeichen erforderlich, wie diese im Befehl expr obligatorisch waren.

Verwenden Sie den Befehl awk, um String in Integer umzuwandeln

Das awk ist ein vorkompilierter Befehl, mit dem der Benutzer formatierte Ausdrücke drucken kann, die Variablen, numerische Funktionen, Zeichenfolgenfunktionen und logische Operatoren enthalten. Sie können diesen Befehl auf verschiedene Weise verwenden.

Wenn Sie beispielsweise eine Nachricht mit einigen formatierten numerischen Berechnungen drucken möchten, können Sie den Befehl echo mit dem Befehl awk wie folgt verwenden:

$ echo salary= 40000 10 | awk '{print $1 $2+$2*$3/100}'

In diesem Befehl möchten wir das Gehalt drucken, wobei das Gehalt einen Bonus von 10 % enthält. Hier ist salary= unser erster Parameter. Wir haben es verwendet, indem wir $1 geschrieben haben.

Ebenso ist 40000 der zweite Parameter, der beim Schreiben von $2 verwendet wird; ähnlich ist $3 ein Platzhalter für den dritten Parameter (d.h. 10).

Die Ausgabe dieses Befehls ist:

salary=44000

Wir können den Befehl awk verwenden, um unser ursprüngliches Problem wie folgt zu lösen:

x_value=1000
y_value=20
echo $x_value $y_value | awk '{print $1 + $2}'

Die Ausgabe ist 1020, wobei x und y zwei Parameter sind, die vom Befehl awk empfangen werden. Die Berechnungen werden entsprechend durchgeführt.

Verwenden Sie perl...print oder perl...say, um String in Integer umzuwandeln

Wir haben die Optionen print oder say im Befehl perl. Der Unterschied zwischen print und say besteht darin, dass print die Zeile nicht füttert und die nächste Ausgabe in derselben Zeile erfolgt, während der Befehl say die Zeile füttert.

Zum Beispiel:

x_value = 5
perl -E "print $x_value"
echo "*"
perl -E "say $x_value"
echo "*"

Die Ausgabe wird sein:

5*5
*

Bitte beachten Sie, dass der zweite Stern wegen des Zeilenvorschubs durch sagen statt drucken in die nächste Zeile gedruckt wird.

Daher können wir das perl mit print oder say verwenden, um unsere gewünschte Ausgabe zu erhalten:

x_value=1000
y_value=20
perl -E "print $x_value+$y_value"

Die Ausgabe ist 1020.

Verwenden Sie Python, um String in Integer umzuwandeln

Python hat eine print-Anweisung, die einen Ausdruck auswerten und ausgeben kann.

Zum Beispiel:

python -c "print 5 * 4"

Die Ausgabe ist 20. Wir können dies verwenden, um unsere erforderlichen Ergebnisse zu erhalten.

Der Code ist unten dargestellt:

x_value=1000
y_value=20
python -c "print $x_value * $y_value"

Die Ausgabe ist 20000.

Wir haben verschiedene Möglichkeiten, einen String in eine Integer-Variable umzuwandeln, um mathematische Operationen durchzuführen. Hier haben wir sechs verschiedene Möglichkeiten vorgestellt, und Sie können jeden nach Ihrer Wahl verwenden.

Verwandter Artikel - Bash String