Problem lösen

Problem lösen
Möglicherweise haben Sie das Problem der schlechten Substitutionssyntax erhalten, während Sie Bash -Skripte entwickelt haben. Nach dem Durchsuchen von Foren können Sie feststellen, dass Sie nicht allein sind. Andere Personen stoßen auf den gleichen Fehler. Es ist ein typografischer Fehler, der passiert, wenn Sie Ihr Shell -Skript ausführen, und es kann aus verschiedenen Gründen geschehen. Die falsche Verwendung von Anweisungssubstitution und fehlerhaften Zeichen, die dem Programm angehängt sind, sind zwei Hauptgründe dafür.

Lassen Sie uns sehen, wie wir unser Shell -Skript dazu bringen können, diesen Fehler zu verursachen und zu beheben. Beginnen Sie mit der neuen Bash -Datei mit Ubuntus "Touch" -Anfrage und öffnen Sie sie innerhalb des Editors "Gnu Nano".

$ touch sub.Sch
$ nano sub.Sch

Beispiel 01

Der erste Grund für den schlechten Substitutionsfehler ist die Verwendung der falschen Code -Syntax. Schauen wir uns das an. Ab dem ersten Bash -Code haben wir in der ersten Zeile des Bash -Skripts Bash -Support hinzugefügt.e., ##!/bin/bash ”. Danach haben wir eine einfache Variable „V“ mit dem Befehl List von Ubuntu als Wert initialisiert. Dieser Wert wurde in die lockigen Klammern und mit dem Schild „$“ eingefügt, um es als Shell -Befehl zu betrachten. Danach ist die Echo -Anweisung hier, um einfach den Wert der Variablen „V“ auf der Shell anzuzeigen. Unser Code ist vollständig und verwendet zu verwenden.

Wir haben den Bash -Code gespeichert und sind nach Verwendung von Strg+S bzw. Strg+x zum Terminal zurückgekehrt. Wir haben diese neu erstellte Bash -Skriptdatei mit der Anweisung "Bash" ausgeführt und hier auf unserem Bildschirm die "schlechte Substitution" erhalten. Dieser Fehler ist aufgrund der Verwendung von Curly -Klammern „“ um die Listenanweisung im Code aufgetreten.

$ bash sub.Sch

Versuchen wir, unseren Code zu aktualisieren, um diesen Fehler jetzt zu beheben. Wir haben also die lockigen Klammern aus der zweiten Codezeile entfernt und durch die einfachen Klammern „()“ ersetzt, wie unten dargestellt. Insgesamt bleibt der Code gleich, da es kein Problem mit dem Code gibt. Speichern Sie diesen Code jetzt.

Nach dem Verlassen des GNU Nano -Editors werden wir die Bash -Datei „Sub ausführen.SH ”aktualisierte Code mit der Verwendung der unten angegebenen„ Bash “-Inweisung. Es stellt sich heraus. Der Befehl List zeigte alle aktuellen Home -Verzeichnis -Inhalte an, i, ich.e., Dateien und Ordner auf unserem Shell -Bildschirm.

$ bash sub.Sch

Beispiel 02

Ein weiterer Grund für das Auftreten schlechter Substitutionsfehler in Bash ist die Verwendung unnötiger Räume bei der Ausführung einiger Variablen. Wir haben also Bash -Support hinzugefügt und eine variable „V“ mit der Listenanweisung als Wert durch einfache Klammern und ein Dollar -Schild „$ initialisiert."Danach haben wir die Anweisung" Echo "verwendet, um den Variablen -V -Wert anzuzeigen. Aber wir haben die Variable "V" in der Anweisung "Echo" zusammen mit dem "Raum" in den Klammern hinzugefügt.

Nach dem Speichern dieses Code haben wir diese Bash -Datei mit der Abfrage „Bash“ in unserem Terminal ausgeführt, wie unten dargestellt. Es gibt die Bash -Substitution am 3 zurückRd Zeile des Skripts.

$ bash sub.Sch

Um den Fehler aus unserem Code zu entfernen, müssen wir unseren Code aktualisieren. Also haben wir die Datei erneut geöffnet und den zusätzlichen Speicherplatz in den lockigen Klammern der Anweisung „Echo“ wie unten entfernt.

Nachdem der Code aktualisiert wurde und der Weißraum entfernt wird, müssen wir diese Datei mit der unten angegebenen Bash -Anweisung ausführen. Nach dem Ausführen der Datei wurde der schlechte Substitutionsfehler entfernt, und die in der Variablen V "angegebene Listenanweisung wurde erfolgreich auf dem Terminal ausgeführt, nachdem die Anweisung„ Echo “im Bash -Skript ausgeführt wurde. Die Liste der aktuellen Home -Verzeichnisdateien und Ordner wird unten auf unserem Shell -Bildschirm angezeigt.

$ bash sub.Sch

Beispiel 03

Dieser Fehler kann auch aufgrund der Verwendung von wiederholten unerwünschten Zeichen im Code auftreten. Wir haben also einen aktualisierten Code ausprobiert, um diesen Fehler auf die Shell zu erhalten. Dafür müssen wir das Zeichen „$“ zweimal in der Anweisung „Echo“ verwenden, um die Variable "V" für die Ausführung anzugeben, die die falsche Syntax dafür ist. Diese Variable „V“ enthält die einfache Listenanweisung als Wert. Da wir das doppelte "$" -Schild in und aus den lockigen Klammern in der Aussage „Echo“ verwendet haben, wird es uns zu einem schlechten Substitutionsfehler bei der Ausführung führen.

Nachdem wir den Code mit Bash -Befehl ausgeführt hatten.

$ bash sub.Sch

Lassen Sie uns den schlechten Substitutionsfehler aus der Ausführung entfernen, indem Sie die Zeile 3 eines Codes aktualisieren. Wir haben das innere "$" -Schild in den lockigen Klammern aus der Erklärung "Echo" entfernt.

Nachdem wir das "$" -Schild entfernt haben, haben wir den Code erneut auf der Shell mit dem Befehl "bash" ausgeführt. Der Fehler wurde entfernt und die Liste der Dateien und Ordner wurde angezeigt.

$ bash sub.Sch

Beispiel 04

Lassen Sie uns unser letztes, aber nicht das geringste Beispiel für diesen Artikel haben. Wir haben zwei Variablen verwendet, x und y, die den Verzeichnisort als Wert enthalten. In der Anweisung „Echo“ dieses Codes haben wir beide Variablen verwendet, die gedruckt und durch das "/" -Schild gedruckt und getrennt werden sollen. Jede Variable enthält ein Dollar -Zeichen damit, während außerhalb der lockigen Klammern auch ein einzelnes Dollar -Schild verwendet wird.

Die Verwendung von lockigen Klammern und Dollar -Zeichen verursachte einen schlechten Substitutionsfehler.

$ bash sub.Sch

Also haben wir die lockigen Klammern und das äußere Dollar -Zeichen entfernt, wie unten gezeigt.

Dieser Zeitwert beider Variablen wurde angezeigt.

$ bash sub.Sch

Abschluss

Hier geht es darum, einen Bash -Code für die Fehler zu erstellen, was dazu führt, dass der schlechte Substitutionsfehler während der Ausführung auftritt. Wir haben die DOs besprochen und nicht, um den Fehler durch die Durchführung verschiedener Bash -Beispiele zu vermeiden.