Programmierung in Bash - Teil 3

zu sichern unsere Konzepte Wir werden 2 sehr nützliche Werkzeuge für die Programmierung lernen, die in Bash perfekt funktionieren. Lernen Sie zu erstellen funciones und definieren Rohre mag zunächst komplex erscheinen, aber dann werden wir das Unermessliche sehen utilidad dass sie uns zur Verfügung stellen.

Rohre

Insbesondere und ohne zu viele Umdrehungen zu machen, ist eine Pipeline eine Methode, die es ermöglicht, die Ausgabe eines Prozesses als Eingabe eines anderen zu steuern, was eine Reihe von Vorteilen ermöglicht, wie z. B. das Reduzieren von Codezeilen, das Verzichten auf Ergebnisspeichervariablen und das Verbessern die Effizienz des Skripts.

Ein Rohr wird im Allgemeinen durch das Symbol | erkannt das erlaubt es, Ausdrücke zu verketten; Obwohl es standardmäßig verwendet wird, gibt es andere Möglichkeiten, Pipes zu erstellen.

Beispiel: Aktuelle Kernel-Nachrichten drucken

Mit #dmesg können Sie aktuelle Kernel-Nachrichten und geladene Treiber anzeigen. #während des Systemstarts; tail druckt die letzten Teile einer Datei oder eines Befehls

dmesg | Schwanz

Obwohl sie so kompliziert sein können, wie wir möchten, ermöglicht die Grundstruktur einer Pipeline, dass das Ergebnis eines Befehls als Eingabe für den nächsten verwendet wird. Dies kann eine Eingabe für einen neuen Befehl liefern, wenn wir weiterhin aufeinanderfolgende Pipes hinzufügen.

funciones

Funktionen sind eine Reihe von Anweisungen, die so gruppiert sind, dass sie mehrmals ausgeführt werden können, ohne dass sie neu geschrieben werden müssen. Es ist gleichbedeutend mit dem Gedanken, dass wir, wenn wir lernen, eine Art von Essen zu kochen, das Rezept auf ein Blatt schreiben und jedes Mal, wenn wir dieses Essen kochen möchten, das Rezept konsultieren, anstatt ein neues Blatt mit demselben Rezept neu zu schreiben.

Das vielleicht wichtigste an Funktionen ist die Möglichkeit, Parameter zu übergeben, Daten, mit denen sie verarbeitet und eine Ausgabe generiert werden. Seine Struktur ist wie folgt:

Funktion Funktionsname {

Prozesse

}

Beispiel: Funktion, die die Dienste anzeigt, die mit dem TCP-Protokoll arbeiten. Wir können auch sehen, wie mehr Rohre angewendet werden.

# Wir definieren einen Funktionsnamen, der uns gefallen kann.

Funktion services_tcp {

#cat verkettet und zeigt den Inhalt des Ordners / etc / services an, # der alle Dienste mit den zugehörigen Ports enthält.

#Der erste Grep nimmt die Liste und entfernt die Kommentare. Mit –v invertieren wir das Ergebnis

#Der zweite Grep zeigt nur diejenigen an, die sich auf TCP beziehen

cat / etc / services | grep –v "^ #" | grep tcp

}

Wenn wir diese Funktion ausführen müssen, müssen wir sie nur beim Namen nennen:

tcp_services

In diesem Fall funktioniert es ohne Parameter; Falls es sie hat, müssen wir sie hinzufügen, damit die Funktion richtig funktioniert, sonst funktioniert die Funktion nicht richtig. Mit return kann eine Funktion als Ergebnis des Prozesses einen Wert zurückgeben.

Beispiel: Funktion mit Eingabeparametern, die die Summe von 2 Zahlen berechnet.

#! / Bin / bash
Funktionssumme ()
{
# Mit let können wir die Operation innerhalb der Anführungszeichen ausführen
let "result = $ 1 + $ 2"

Mit #return kann der ganzzahlige Wert zurückgegeben werden. Sobald die Rückgabe ausgeführt wurde, wird der Wert in der Variablen $?
return $ result;
}
 
#Die Summenfunktion wird aufgerufen und wir übergeben 2 Eingabeparameter.

addiere 2 3

# druckt den Wert von $? mit Echo, das den tatsächlichen Wert der Variablen in Anführungszeichen auswertet
echo -e "Ergebnis = $?";

<< Zum vorherigen Teil gehen

Vielen Dank, Juan Carlos Ortiz!


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   Nill Zeiger sagte

    Ich bin nicht sicher, aber die return-Anweisung der Funktionen wird nur verwendet, um eine Ganzzahl zwischen 0 und 255 zurückzugeben, wie die Fehlercodes von "exit", im Allgemeinen 0, wenn alles in Ordnung ist, und eine andere Zahl für die anderen Fälle. Obwohl dies im Beispiel funktioniert, halte ich es nicht für eine gute Praxis, das Ergebnis mit return zurückzugeben.
    Da drüben sage ich einen Unsinn, oder? Auge! Ha!

  2.   Juanka sagte

    Die Wahrheit ließ mich zweifeln. Um Probleme mit den Funktionen zu vermeiden, können wir in jedem Fall die Rückgabe durch Echo ersetzen, falls die Funktion versucht, einen Wert oder eine Zeichenfolge zurückzugeben oder zu drucken.

  3.   Abel S. Mount Big sagte

    Um dies zu lösen, können Sie den Befehl bc verwenden. In der Summenfunktion können Sie Folgendes verwenden: result = `echo $ 1 + $ 2 | bc -ql`

  4.   Luis Miguel sagte

    gut,

    Ich möchte wissen, wo ich die Bash-Dateien speichern kann, damit sie systemweit ausgeführt werden. Dies ist nicht das bin-Verzeichnis, sondern die Heimat für Sicherungskopien.

    Danke und Grüße.

  5.   Joaquin sagte

    Vielen Dank, ich beginne mit den Skripten und die Wahrheit ist, dass dies sehr nützlich ist. Sie sind sehr freundlich, Ihr Wissen zu teilen!
    Grüße

    1.    Lass uns Linux benutzen sagte

      Vielen Dank! Umarmung!
      Pablo

  6.   CRISTHIAN sagte

    Syntaxfehler, unerwartet
    Beim Versuch, das Beispiel auszuführen, wird eine Fehlermeldung angezeigt. Ich habe es genauso kopiert

    Was kann sein? Ich bin auf Ubuntu 14.10