Poprawka: błąd składni w pobliżu nieoczekiwanego tokena `('

Błąd składniowy komunikatu o błędzie w pobliżu nieoczekiwanego tokena `(' występuje w środowisku typu Unix, Cygwin oraz w interfejsie wiersza poleceń w systemie Windows. Ten błąd najprawdopodobniej zostanie wyzwolony podczas próby uruchomienia skryptu powłoki, który został edytowany lub stworzony w starszych systemach DOS / Windows lub Mac.

Błąd składni w pobliżu nieoczekiwanego tokena `('

Ten komunikat o błędzie pojawia się również podczas wprowadzania poleceń w wierszu poleceń systemu Linux w codziennych zadaniach, takich jak ręczne kopiowanie plików itp. Głównym powodem, dla którego pojawia się ten komunikat o błędzie, jest albo zła składnia, albo problem z systemem operacyjnym przy interpretacji poleceń innego systemu / muszla.

Co powoduje błąd składni w pobliżu nieoczekiwanego tokena `('?

Przyczyny tego komunikatu o błędzie są bardzo różnorodne i nie można ich wymienić w jednym artykule, ponieważ istnieją tysiące możliwości niepoprawnej składni podczas wykonywania poleceń. Głównymi przyczynami tego błędu są:

  • Zła składnia podczas wykonywania dowolnego polecenia na dowolnej platformie. Albo nie używasz polecenia poprawnie, albo wpisałeś niewłaściwą składnię.
  • Powłoka nie jest kompatybilna między systemami Unix / DOS.
  • Występują problemy z uruchamianiem skryptu powłoki bash z innego źródła .

W tym artykule zakładamy, że znasz podstawy kodowania i wiesz, co robisz. Jeśli jesteś początkującym, najlepiej postępuj zgodnie ze szczegółowymi samouczkami języka / polecenia, które próbujesz wykonać. Prawdopodobnie popełniłeś błąd w jakiejś składni.

Rozwiązanie 1: Sprawdzanie składni i formatu poleceń

Pierwszym i najważniejszym powodem, dla którego może pojawić się ten komunikat o błędzie, jest zła składnia kodu lub nieprzestrzeganie dokładnego formatu poleceń. Każde polecenie ma predefiniowany format, który można zobaczyć w jego dokumentacji. Kilka parametrów jest opcjonalnych, a inne są obowiązkowe.

Ponadto należy zwrócić szczególną uwagę na dodatkowe miejsce, stosowanie podwójnych cudzysłowów i wymagane parametry obowiązkowe. Jeśli któregoś z nich brakuje lub zostało nieprawidłowo zadeklarowane, nie będzie można wykonać kodu.

Na przykład zamiast następującego kodu

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

Musisz go wykonać jako

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

Upewnij się również, że poprawnie wykonujesz skrypt poleceń / powłoki, jeśli obejmuje on kilka wierszy.

Ze względu na typ parametru konieczne są podwójne cudzysłowy. Dodatkowa spacja może również zepsuć kod i wymusić komunikat o błędzie. Sprawdź oficjalną dokumentację wykonywanego polecenia i sprawdź, czy nie ma w tym problemu.

Rozwiązanie 2: Rozwiązywanie problemów ze skryptem powłoki

Jeśli używasz skryptu powłoki, który działa w systemie źródłowym, ale zwraca błąd w celu, możesz rozwiązać problem ze skryptem, sprawdzając zmienne przechowywane podczas wykonywania, a następnie sprawdzając, co jest przyczyną problemu. Jest to bardzo częsta przyczyna, ponieważ w kilku przypadkach powłoka próbuje zinterpretować znak niedrukowalny.

Spróbuj uruchomić powłokę z parametrem „vx”. To pokaże nam, jakie polecenia są uruchamiane i jakie wartości są przechowywane w skrypcie. Tutaj możesz rozwiązywać problemy i diagnozować, co dzieje się źle.

Na przykład uruchom skrypt w terminalu po dołączeniu „vx” jako:

 # sh -vx ./test_script5.sh 

Możesz sprawdzić zawartość skryptu za pomocą polecenia „cat” jako:

 # cat test_script5.sh 

Rozwiązanie 3: Za pomocą polecenia „dos2unix.exe”

W plikach tekstowych Windows / DOS nowy wiersz jest kombinacją powrotu karetki (\ r), po której następuje przejście do wiersza (\ n). W Macu (przed Mac OS X), przerwa w linii używała prostego powrotu karetki (\ r). Unix / Linux i Mac OS X używają podziałów wierszy (\ n). Jeśli używasz Cygwin, przetwarzanie skryptów wykonanych przez DOS / Windows i starszego Maca nie powiedzie się z powodu dodatkowego znaku Carriage Return (\ r).

Za pomocą polecenia „dos2unix.exe”

Tutaj możesz wykonać polecenie „dos2unix.exe”, które przekonwertuje skrypt do właściwego formatu, a następnie będzie można go uruchomić bez żadnych problemów.

Podsumowując, musisz sprawdzić swoje polecenia i rodzaj używanej platformy i upewnić się, że nie ma żadnych rozbieżności. Ponieważ nie jesteśmy w stanie objąć każdej możliwości, masz pojęcie, jakie rodzaje błędów mogą wystąpić i jak je naprawić.

Ciekawe Artykuły