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

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

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

Ten komunikat o błędzie pojawia się również podczas wprowadzania poleceń w wierszu poleceń Linuksa dla codziennych zadań, takich jak ręczne kopiowanie plików itp. Głównymi powodami, dla których pojawia się ten komunikat o błędzie, jest albo zła składnia, albo problem z systemem operacyjnym w interpretowaniu poleceń innego systemu / muszla.

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

Przyczyny tego komunikatu o błędzie są bardzo zróżnicowane i nie można ich wymienić w jednym artykule, ponieważ istnieją tysiące możliwości nieprawidłowej składni podczas wykonywania poleceń. Główne przyczyny tego błędu to:

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

W tym artykule zakładamy, że znasz podstawy kodowania i masz pojęcie, co robisz. Jeśli jesteś początkującym, najlepiej postępować zgodnie z dogłębnymi samouczkami języka / polecenia, które próbujesz wykonać. Prawdopodobnie popełniłeś błąd w składni.

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

Pierwszym i najważniejszym powodem, dla którego możesz napotkać ten komunikat o błędzie, jest niewłaściwa składnia w kodzie 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 , użycie podwójnych cudzysłowów i wymagane obowiązkowe parametry. Jeśli brakuje któregoś z nich lub został on nieprawidłowo zadeklarowany, nie będziesz w stanie wykonać swojego 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 swoje polecenia / skrypt powłoki, jeśli obejmuje 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. Upewnij się, że sprawdziłeś oficjalną dokumentację polecenia, które wykonujesz i sprawdź, czy nie ma tam 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 miejscu docelowym, możesz rozwiązać problem ze skryptem, sprawdzając zmienne, które są przechowywane podczas wykonywania, a następnie zobacz, co powoduje problem. Jest to bardzo częsta przyczyna, ponieważ w kilku przypadkach powłoka próbuje zinterpretować niedrukowalny znak.

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ązać problem i zdiagnozować, co się dzieje.

Na przykład wykonaj 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: Użycie polecenia „dos2unix.exe”

W plikach tekstowych Windows / DOS nowy wiersz jest połączeniem znaku powrotu karetki (\ r), po którym następuje znak nowego wiersza (\ n). W systemie Mac (przed Mac OS X) podział wiersza używał prostego powrotu karetki (\ r). Unix / Linux i Mac OS X używają znaków końca wiersza (\ n). Jeśli używasz Cygwin, nie uda się przetworzyć skryptów utworzonych przez DOS / Windows i starsze komputery Mac z powodu dodatkowego znaku powrotu karetki (\ r).

Za pomocą polecenia „dos2unix.exe”

Tutaj możesz zrobić polecenie „dos2unix.exe”, które przekonwertuje skrypt do odpowiedniego formatu, a następnie możesz go wykonać bez żadnych problemów.

Podsumowując, musisz zbadać swoje polecenia i typ używanej platformy i upewnić się, że nie ma żadnych rozbieżności. Ponieważ nie możemy uwzględnić wszystkich możliwości, możesz mieć pojęcie, jakie rodzaje błędów mogą wystąpić i jak je naprawić.