Schreiben effizient für Schleifen in Bash -Tipps und Tricks
- 1036
- 20
- Tom Jakobs
Bash ist eine beliebte Shell-Skriptsprache, die üblicherweise in Linux- und UNIX-basierten Betriebssystemen verwendet wird. Eines der am häufigsten verwendeten Konstrukte in Bash ist die für die Schleife, mit der über einen Satz von Elementen iteriert und eine bestimmte Aktion auf jedem Element durchgeführt wird. Es ist jedoch wichtig, effizient für Schleifen zu schreiben, um die Skriptleistung zu optimieren.
Es ist auch wichtig zu beachten, dass Bash nur eine von vielen verfügbaren Skriptsprachen ist, und seine Fähigkeiten können in bestimmten Szenarien eingeschränkt sein. Wenn Sie feststellen, dass Ihre Bash -Skripte zu komplex oder schwer zu optimieren sind, sollten Sie eine leistungsstärkere Skriptsprache wie Python oder Perl verwenden, die Sie verwenden möchten.
In diesem Tutorial werden wir einige Tipps und Tricks zum effizienten Schreiben für Schleifen in Bash untersuchen.
Tipp 1: Verwenden Sie die richtige Syntax
Die Syntax für Basic for Loop in Bash lautet wie folgt:
Für die Variable in [Liste] do [Befehl (n)] erledigt1234 | Für die Variable in [Liste] do [Befehl (n)] erledigt |
Die [Liste] kann eine Reihe von Elementen sein, die durch Leerzeichen getrennt sind, oder es kann sich um einen Bereich von Zahlen handelt, die mit der start… end -Syntax angegeben sind. Es ist wichtig, die richtige Syntax für Ihren spezifischen Anwendungsfall zu verwenden.
Wenn Sie beispielsweise einen großen Satz von Elementen iterieren. Dies kann dazu beitragen, die Leistung zu verbessern, indem die Anzahl der Iterationen reduziert wird, die für die Vervollständigung der Schleife erforderlich sind.
Tipp 2: Minimieren Sie externe Befehle
Jedes Mal, wenn Sie einen Befehl innerhalb einer für Schleife ausführen. Daher ist es wichtig, die Anzahl der externen Befehle zu minimieren, die Sie in Ihrer für die Schleife verwenden.
Anstatt einen externen Befehl zu verwenden, um die Anzahl der Dateien in einem Verzeichnis zu zählen, können Sie einen integrierten Bash-Befehl verwenden, um dasselbe zu erreichen:
Datei_Count = 0 für Datei in/path/to/verzeichnis/* do ((file_count ++)) erledigt12345 | Datei_Count = 0FOR Datei in/path/to/verzeichnis/*do ((file_count ++)) erledigt |
Dies beseitigt die Notwendigkeit eines externen Befehls, der zur Verbesserung der Leistung beitragen kann.
Tipp 3: Verwenden Sie Arrays
Wenn Sie ein Array verwenden, um die Artikel zu speichern, über die Sie iterieren möchten, können Sie die Effizienz Ihrer für die Schleife verbessern. Dies liegt daran.
Anstatt beispielsweise eine von Raum getrennte Liste wie diese zu verwenden: anstatt eine leistungsgetrennte Liste von Werten zu verwenden:
für den Wert im Wert von Wert 1 Wert2 Wert3 Wert 4 do [Befehl (n)] erledigt1234 | für den Wert im Wert von Wert 1 Wert2 Value3 Value4DO [Befehl (n)] erledigt |
Sie können ein Array wie dieses verwenden:
values = ("value1" "value2" "value3" "value4") für den Wert in "values [@]" do [Befehl (s)] erledigt12345 | values = ("value1" "value2" "value3" "value4") für den Wert in "values [@]" do [Befehl (s)] erledigt |
Dies kann dazu beitragen, die Leistung zu verbessern, indem der Overhead der Analyse der Zeichenfolge in einzelne Werte reduziert wird.
Tipp Nr. 4: Verwenden Sie die Shell -Parameterausdehnung
Die Verwendung von Shell -Parametererweiterungen kann dazu beitragen, Ihre für die Schleife zu vereinfachen und die Leistung zu verbessern, indem die Anzahl der Befehle reduziert wird, die Sie zur Ausführung benötigen.
Anstatt beispielsweise einen externen Befehl zu verwenden, um die Länge eines Arrays zu finden, können Sie die Shell -Parameterausdehnung wie folgt verwenden:
values = ("value1" "value2" "value3" "value4") für ((i = 0; i I<$#values[@]; i++)) do [command(s) "values[i]"] done12345 | values = ("value1" "value2" "value3" "value4") für ((i = 0; i I<$#values[@]; i++))do [command(s) "values[i]"]done |
Dies beseitigt die Notwendigkeit eines externen Befehls, der zur Verbesserung der Leistung beitragen kann.
Tipp Nr. 5: Verwenden Sie die integrierten Bashs integrierten Befehle
Bash verfügt über eine Reihe integrierter Befehle, die dazu beitragen können, die Effizienz Ihrer für Loops zu verbessern. Beispielsweise können Sie den Befehl printf verwenden, um formatierte Ausgaben in Ihrer Schleife zu drucken, die effizienter sein kann als einen externen Befehl wie echo zu verwenden.
für i in 1… 10 do printf "number %d \ n" "$ i" fertig1234 | für i in 1… 10 do printf "number %d \ n" "$ i" fertig |
Dies kann dazu beitragen, die Leistung zu verbessern, indem der Overhead des Starts externer Befehle reduziert wird.
Abschluss
Zusammenfassend kann das Schreiben effizienter Schleifen in Bash die Leistung Ihrer Skripte erheblich verbessern und ihre Ausführungszeit verkürzen. Durch die Implementierung der in diesem Artikel diskutierten Tipps und Tricks, z. B. der Minimierung der Verwendung externer Befehle, der Verringerung der Anzahl der Iterationen und der Verwendung von Parallelisierungstechniken, können Sie Ihre Bash -Skripte optimieren, um Daten schneller und effizienter zu verarbeiten.
Unabhängig von der Sprache, die Sie auswählen, ist der Schlüssel zum Schreiben effizienter Skripte darin, Ihren Code ständig zu analysieren und zu optimieren, verschiedene Ansätze zu testen und die Leistung immer zu berücksichtigen. Unter Berücksichtigung dieser Prinzipien können Sie robuste und effiziente Skripte erstellen, die selbst die anspruchsvollsten Datenverarbeitungsaufgaben erledigen können.
- « Vor- und Nachteile von Chatgpt
- Ein Anfängerleitfaden zur Installation des Tensorflows auf Ubuntu »