Bash Script to während der Schleife beim Lesen von Stdin

Bash Script to während der Schleife beim Lesen von Stdin
Das Konzept „Stream“ in einem Computer gilt für etwas, das Daten verschieben kann. Jede Anweisung, die Sie im Terminal ausführen. Diese Positionen können ein Ursprung oder ein Abfluss sein. Lassen Sie uns einen kurzen Überblick über den spezifischen Stdin -Stream erhalten. In Linux bezieht sich Stdin auf die Standard- oder Standardeingabe. Die Eingabe, die es benötigt, muss ein Text sein. Um Daten oder Informationen von Ihnen zu erwerben, ist dies der Dateihandler, den Ihre Prozedur -Anlage anzeigt. Fast alle Ströme werden unter Linux so angesehen, als wären sie Verzeichnisse. Wir können Informationen aus all diesen Streams lesen/schreiben, genau wie Sie ein Dokument lesen/schreiben können. Durch die Verwendung einer damit verbundenen Sonderdateideskriptor -Nummer bietet ein großartiger Ansatz, um auf ein Dokument zuzugreifen. In der gesamten Situation solcher Ströme wurden besondere Werte zugewiesen. Stdin hat einen Wert von 1.

Stdin: 1

Beginnen wir mit dem Verständnis durch das Üben über den Stdin -Stream, der während der Schleifen verwendet wird. Zuerst werden wir ein grundlegendes Beispiel für das Stdin wie gelesen haben. Führen Sie die folgende Anweisung aus. Die Anweisung würde Tastatureingaben erfordern. Dabei erhält das Lesewerkzeug durch Stdin den Text.

$ read

Beispiel 01:

Erstellen Sie eine neue Datei „Eingabe.sh ”und fügen Sie das angehängte Skript hinzu. Wir haben die while -Schleife verwendet, um den Text von einem Benutzer vom Terminal aus zu lesen und ihn auszudrucken. Das Skript wird mit einem „/dev/stdin“ als allererster Parameter $ 1 benannt, bei dem der entsprechende Ansatz die reguläre Eingabe aus der Konsole liest. Speichern Sie diese Datei und schließen Sie sie.

Öffnen Sie das Terminal und führen Sie die neu aktualisierte Datei „Eingabe aus“ aus.Sh ”als:

$ bash Input.Sch

Wenn Sie die Datei mit dem Befehl Bash ausführen, werden Sie in die nächste Zeile gesprungen, um etwas zu schreiben. Wie Sie unten sehen können, hat der Benutzer einen einzeiligen Text geschrieben und die Eingabetaste drücken.

Der von einem Benutzer geschriebene Text wird zuerst vorgelesen und in der nächsten Zeile wie unten ausgedruckt.

Sie können sogar einen Speicherplatz zwischen Ihren Texteingaben wie unten bereitstellen.

Beispiel 02:

Jetzt werden wir den Text aus der Datei lesen. Aktualisieren Sie dieselbe Datei “Eingabe.sh ”durch Bereitstellung des Dateinamens -Skripts.sh ”als der allererste Parameter $ 1. Der entsprechende Ansatz lautet aus diesem Dokument.

Wir haben die folgenden Textinformationen in der Datei „Skript“.sh ”wie unten. Überprüfen Sie, wie es funktioniert.

Führen Sie die Datei „Eingabe aus.SH ”Verwenden Sie den Bash -Befehl. Sie werden sehen, dass der Lesestream aus dem bereitgestellten Datei „Skript vorgelegt wird.sh ”und drucken Sie es im Terminal wie unten aus.

$ bash Input.Sch

Beispiel 03:

Lassen Sie uns ein Beispiel haben, um jedes Verzeichnis einzeln mit stdin zu lesen. Sie müssen den Parameter -u mit der Lesen berücksichtigen. Darin impliziert „-u 1“ “lesen Sie von Stdin.In diesem Code repräsentiert "Zeile" den Dateinamen, und das Inkrement "i ++" wird verwendet, um zum nächsten Verzeichnis oder zum nächsten Datei zu springen. Es zählt auch die Dateinummer, die auch gelesen wurde. Führen wir diesen Code aus, um zu überprüfen, was als nächstes passiert.

Führen Sie die Bash -Datei „Eingabe aus“ aus.Sch". Sie werden aufgefordert, einen Text einzugeben, um zur nächsten Datei zu springen. Hier repräsentiert „Comm“ den Namen der ersten Datei.

$ bash Input.Sch

Während Sie dies fortsetzen, können Sie sehen, dass wir eine Liste von Dateien haben, die wir durchlaufen haben.

Beispiel 04:

In diesem Beispiel haben wir zwei verwandte Dateien, aus denen wir lesen können. Weisen Sie beide Dateien die erforderlichen Berechtigungen über den Befehl „CHMOD“ unter "CHMOD" wie unten zu.

Chmod U+x Dateiname

Schreiben Sie den folgenden Code in der Datei „Eingabe.Sch". Bis die Schleife "while" Linien erhält, druckt sie diese Zeilen aus. Während sich die "Zeile" auf ein anderes Datei -Skript bezieht.Sch".

Wir haben den folgenden Code in der Datei „Skript“.Sch". Während der Schleife druckt sie die Zeilennummer.

Führen Sie beide Dateien mit "" aus./"Zu Beginn des Dateinamens und Trennung mit" "|" in der Schale. Sie werden sehen, dass es die Zeilennummern druckt, während Sie den Text auch aus den Dateien drucken. Es ist eine sehr einfache Methode, um zwei Dateien oder deren Inhalt zu korrelieren.

$ ./Skript.Sh | ./Eingang.Sch

Beispiel 05:

Beenden wir dieses Thema, indem wir dieses einfache und effiziente Beispiel haben. Wir haben eine Datei “Skript.sh ”mit den folgenden Inhalten oder Namen von Personen. Wir werden diese Namen einzeln aus einer anderen Datei lesen.

Aktualisieren Sie die Datei “Eingabe.SH: Mit dem folgenden Skript. In diesem Skript haben wir eine Weile Schleife, um „stdin“ zu arbeiten. Wir haben beim Lesen von "Read -r" gelesen, während wir aus einer anderen Datei als andere als Standardeingabe lesen. Andererseits die Standardausgabe des Benutzers im Terminal unter Verwendung von „-u“ als bash-spezifisch. Hier ist der "Name" der Text oder der Inhalt des Datei -Skripts "Skript".Sch". Die Option "-P" wird zum "Lesen" verwendet. In der Read -Anweisung wird der "Name" aus einer anderen Datei gelesen und gefragt, ob Sie ihn löschen möchten oder nicht. Das Schlüsselwort „IP“ wird zur Reaktion der Benutzer verwendet, um die Aktion des Löschens zu bestätigen. Was auch immer die Benutzerantwort ist, sie wird sie ausdrucken. In der Anweisung "if" wird prüfen, ob die Standardeingabe des Benutzers mit „y“ gleich ist. Dann wird eine Nachricht ausgedruckt, in der erwähnt wird, dass er den „Namen“ gelöscht hat, das gelöscht wurde. Dieser Prozess wird bis zum letzten Inhalt der Datei „Skript“ wiederholt.Sch".

Schauen wir uns die Ausgabe des obigen Code an. Führen Sie die Datei mit dem Befehl bash aus. Das System fragt Sie, ob Sie diesen „Namen“ löschen möchten oder nicht. Geben Sie "y" ein und tippen Sie auf "Eingeben".

$ bash Input.Sch

Hier zum Drücken von „y“ wird „Y“ gedruckt und eine Nachricht angezeigt, dass es den jeweiligen „Namen“ gelöscht hat, der gelöscht hat. Danach wechselt es zu einem anderen "Namen".

Es werden Sie aufgefordert, die Namen zu löschen, bis alle Namen oder Inhalte der Datei „Skript“.sh ”wurde wie unten überholt.

Abschluss:

Wir haben alle einfachen Beispiele für Standardeingaben bei der Verwendung der Schleife im Bash -Skript großartig durchgemacht.