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.
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).
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ć.