Konvertieren Sie String in Integer in Bash
- Mathematische Operationen auf String
-
Verwenden Sie den Befehl
expr
, um String in Integer umzuwandeln -
Verwenden Sie das Konstrukt für doppelte Klammern
((...))
, um eine Zeichenfolge in eine Ganzzahl umzuwandeln -
Verwenden Sie den einfachen Rechnerbefehl (
bc
), um eine Zeichenfolge in eine Ganzzahl umzuwandeln -
Verwenden Sie den Befehl
awk
, um String in Integer umzuwandeln -
Verwenden Sie
perl...print
oderperl...say
, um String in Integer umzuwandeln - Verwenden Sie Python, um String in Integer umzuwandeln
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.