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