Fix: Syntaxfehler in der Nähe eines unerwarteten Tokens `(‘

Die Fehlermeldung Syntaxfehler in der Nähe eines unerwarteten Tokens `(‘ tritt in einer Unix-Umgebung, Cygwin, und in der Befehlszeilenschnittstelle in Windows auf. Dieser Fehler wird höchstwahrscheinlich ausgelöst, wenn Sie versuchen, ein Shell-Skript auszuführen, das in älteren DOS / Windows- oder Mac-Systemen bearbeitet oder erstellt wurde.

Syntaxfehler in der Nähe eines unerwarteten Tokens `('
Syntaxfehler in der Nähe eines unerwarteten Tokens `(‘

Diese Fehlermeldung wird auch angezeigt, wenn Sie Befehle in die Linux-Befehlszeile für alltägliche Aufgaben wie das manuelle Kopieren von Dateien usw. eingeben. Die Hauptgründe für das Auftreten dieser Fehlermeldung sind entweder eine schlechte Syntax oder ein Problem des Betriebssystems bei der Interpretation der Befehle eines anderen Systems. Schale.

Was verursacht einen Syntaxfehler in der Nähe eines unerwarteten Tokens `(‘?

Die Gründe für diese Fehlermeldung sind sehr unterschiedlich und können nicht in einem Artikel aufgeführt werden, da bei der Ausführung von Befehlen Tausende von Syntaxfehlern auftreten können. Die Hauptgründe für diesen Fehler sind:

  • Schlechte Syntax wenn Sie einen Befehl auf einer der Plattformen ausführen. Entweder verwenden Sie den Befehl nicht richtig oder Sie haben die falsche Syntax eingegeben.
  • Die Shell ist nicht kompatibel zwischen Unix / DOS-Systemen.
  • Es gibt Probleme beim Ausführen des Bash-Shell-Skripts eine andere Quelle.

In diesem Artikel wird davon ausgegangen, dass Sie die Grundlagen des Codierens kennen und eine Vorstellung davon haben, was Sie tun. Wenn Sie ein Anfänger sind, befolgen Sie am besten ausführliche Tutorials der Sprache / des Befehls, die Sie ausführen möchten. Sie haben wahrscheinlich einen Fehler in der Syntax gemacht.

Lösung 1: Überprüfen der Syntax und des Formats von Befehlen

Der Hauptgrund, warum diese Fehlermeldung auftreten kann, ist die schlechte Syntax in Ihrem Code oder die Nichteinhaltung des genauen Formats der Befehle. Jeder Befehl hat ein vordefiniertes Format, das Sie in der Dokumentation sehen können. Einige Parameter sind optional, andere sind obligatorisch.

Darüber hinaus ist besondere Vorsicht geboten zusätzlicher Platz, Gebrauch von Anführungszeichen, und das verpflichtend Parameter erforderlich. Wenn einer von ihnen fehlt oder falsch deklariert wurde, können Sie Ihren Code nicht ausführen.

Zum Beispiel anstelle des folgenden Codes

[mycom7] # ./ctopo.sh um_test1 [(1,2),(2,1)]

Sie müssen es als ausführen

[mycom7] # ./ctopo.sh um_test1 "[(1,2),(2,1)]"

Stellen Sie außerdem sicher, dass Sie Ihre Befehle / Shell-Skripte korrekt ausführen, wenn sie mehrere Zeilen umfassen.

Aufgrund des Parametertyps sind doppelte Anführungszeichen erforderlich. Ein zusätzliches Leerzeichen kann auch Ihren Code ruinieren und die Fehlermeldung erzwingen. Stellen Sie sicher, dass Sie die überprüfen offizielle Dokumentation des Befehls, den Sie ausführen, und prüfen Sie, ob dort ein Problem vorliegt.

Lösung 2: Fehlerbehebung bei Ihrem Shell-Skript

Wenn Sie ein Shell-Skript verwenden, das im Quellsystem funktioniert, aber einen Fehler im Ziel zurückgibt, können Sie das Skript beheben, indem Sie die während der Ausführung gespeicherten Variablen überprüfen und dann feststellen, was das Problem verursacht. Dies ist eine sehr häufige Ursache, da die Shell in einigen Fällen versucht, ein nicht druckbares Zeichen zu interpretieren.

Versuchen Sie, die Shell mit dem Parameter ‘vx’ auszuführen. Dies zeigt uns, welche Befehle ausgeführt werden und welche Werte im Skript gespeichert sind. Hier können Sie Fehler beheben und diagnostizieren, was falsch läuft.

Führen Sie beispielsweise das Skript im Terminal aus, nachdem Sie ‘vx’ wie folgt eingefügt haben:

# sh -vx ./test_script5.sh

Sie können den Inhalt des Skripts mit dem Befehl ‘cat’ wie folgt überprüfen:

# cat test_script5.sh

Lösung 3: Verwenden des Befehls ‘dos2unix.exe’

In Windows / DOS-Textdateien ist eine neue Zeile eine Kombination aus einem Wagenrücklauf ( r) gefolgt von einem Zeilenvorschub ( n). In Mac (vor Mac OS X) wurde bei einem Zeilenumbruch ein einfacher Wagenrücklauf ( r) verwendet. Unix / Linux und Mac OS X verwenden Zeilenumbrüche ( n). Wenn Sie Cygwin verwenden, können die von DOS / Windows und älteren Macs erstellten Skripts aufgrund des zusätzlichen Carriage Return-Zeichens ( r) nicht verarbeitet werden.

Verwenden Sie den Befehl 'dos2unix.exe'
Verwenden Sie den Befehl ‘dos2unix.exe’

Hier können Sie den Befehl ‘dos2unix.exe’ verwenden, der das Skript in das richtige Format konvertiert und es dann ohne Probleme ausführen kann.

Abschließend müssen Sie Ihre Befehle und den von Ihnen verwendeten Plattformtyp untersuchen und sicherstellen, dass keine Unstimmigkeiten bestehen. Da wir nicht jede Möglichkeit abdecken können, haben Sie eine Vorstellung davon, welche Arten von Fehlern auftreten können und wie sie behoben werden können.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *