Fix: Syntaxfehler in der Nähe eines unerwarteten Tokens `(& lsquo;

Der Fehlermeldungen- Syntaxfehler in der Nähe des unerwarteten Tokens "(" tritt in einer Unix-Umgebung, Cygwin, und in der Befehlszeilenschnittstelle unter Windows auf. Dieser Fehler wird höchstwahrscheinlich ausgelöst, wenn Sie versuchen, ein bearbeitetes Shell-Skript auszuführen oder erstellt in älteren DOS / Windows- oder Mac-Systemen.

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 beim Ausführen eines Befehls auf einer der Plattformen. 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 von einer anderen 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 sollte besonders auf zusätzlichen Platz , die Verwendung von doppelten Anführungszeichen und die erforderlichen obligatorischen Parameter geachtet werden. 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 offizielle Dokumentation des von Ihnen ausgeführten Befehls überprüfen und feststellen, 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'

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 sie beheben können.

Empfohlen

Fix: Minecraft reagiert nicht
Was ist eine Registrierungsanwendung für ein digitales TV-Tunergerät und sollte diese entfernt werden?
Was ist FileRepMalware und sollten Sie es entfernen?