Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Opublikowany: 2022-05-30
Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Kodowanie w Linux Bash Terminal stało się dominującą praktyką w sektorze kodowania. Inżynierowie oprogramowania i studenci uczący się języka kodowania spotykają się z różnymi błędami. Jeśli wielokrotnie widziałeś błędy, takie jak błąd składni w pobliżu nieoczekiwanego tokena „(” lub błąd składni Bash w pobliżu nieoczekiwanego tokena, możesz spróbować polegać na metodach opisanych w artykule i stać się biegłym koderem. Przeczytaj metody opisane w artykule w artykule kolejność opisana i napraw błędy w wierszach poleceń w swoim pliku.

Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Zawartość

  • Jak naprawić błąd składni Bash w pobliżu nieoczekiwanego tokena?
  • Metoda 1: Ręcznie napraw błędy w każdym wierszu poleceń
  • Krok I: Przeczytaj zawartość pliku
  • Krok II: Usuń przerwy w wierszach systemu Windows
  • Krok III: Ustaw uprawnienia do nowo utworzonego pliku
  • Krok IV: Formatuj kod w pliku
  • Metoda 2: Przepisz kod
  • Metoda 3: Użyj polecenia Dos2unix.exe

Jak naprawić błąd składni Bash w pobliżu nieoczekiwanego tokena?

Linux Bash jest interpreterem wiersza poleceń dla systemu opartego na systemie Linux i zastępuje powłokę Bourne Shell lub sh. Pliki są nazywane przy użyciu formatu .sh w skryptach Linux Bash. Jeśli występują problemy z formatowaniem w kodzie w skrypcie powłoki, możesz napotkać błąd składni. Jeśli błąd jest zbliżony do znaku ( , powłoka poprosi o podanie błędu w linii i wyświetli błąd w odpowiedniej linii. Ponieważ Linux Bash jest interpreterem, linia z błędem zostanie zwrócona w Terminal i przestanie skanować pozostałe polecenia w skrypcie. Dlatego musisz naprawić błąd w konkretnym wierszu poleceń i przejść do następnego, aby naprawić nieoczekiwany błąd tokena w skrypcie powłoki. Przyczyny składni błąd w pobliżu nieoczekiwanego tokena w Linux Bash są wymienione poniżej w tej sekcji, jak poniżej:

  • Kodowanie za pomocą sekwencji ucieczki — jeśli kody zostały napisane w skryptach Bash, sekwencje ucieczki lub znaki cudzysłowu w skrypcie mogą powodować błędy. Sekwencje specjalne i cudzysłowy muszą być napisane we właściwym formacie, aby naprawić błąd.
  • Nieprawidłowa składnia w pliku kodującym — składnia w kodzie może powodować błąd składni, jeśli polecenie jest napisane w niewłaściwej składni, np. zmieniając kolejność pętli.
  • Niewłaściwe użycie polecenia — jeśli nie używasz polecenia poprawnie, na przykład niepoprawne przypisanie wartości, możesz mieć błąd składni.
  • Niezgodny system operacyjny w systemach — Jeśli powłoka skryptu kodującego nie jest zgodna między systemami Unix i DOS, może wystąpić nieoczekiwany błąd.
  • Problemy w skrypcie powłoki bash — problemy działające w skrypcie powłoki bash w pliku skopiowanym z innego systemu mogą powodować nieoczekiwany błąd tokena.

Rozważmy plik o nazwie example.sh utworzony w skrypcie Linux Bash za pomocą następujących wierszy poleceń w celach objaśniających. Przykładowy plik zawiera możliwości błędów składniowych i zawiera wszystkie możliwe polecenia, których można użyć w skrypcie powłoki.

 str= 'Pierwszy wiersz polecenia '(przykładowy plik)' w skrypcie'
str= [(1,2),(3,4)]
if[ $dzień == „pon” ] then
echo „pon”
w przeciwnym razie
echo „nie pon”
fi
dla ZMIENNEJ w {0..2}; następnie
wykonaj polecenie echo 1; polecenie echa2; polecenie echa3; polecenie echa4; Gotowe
podczas gdy prawda; wykonaj if [ $ dzień == „mon” ]; następnie powtórz „mon”; w przeciwnym razie echo „nie pon”; Gotowe; fi 

przykładowy plik z wierszami poleceń w linux bash

Metoda 1: Ręcznie napraw błędy w każdym wierszu poleceń

Pierwszą metodą naprawienia błędów jest ręczne naprawienie błędu składni w każdym wierszu polecenia w skrypcie. W tej sekcji omówiono kroki mające na celu rozwiązanie błędów składni w pobliżu nieoczekiwanego tokenu w wierszach poleceń. Poniżej opisano proces naprawy nieoczekiwanego błędu tokena w terminalu. Uruchom plik w Terminalu , wpisując polecenie ./example.sh i naciskając klawisz Enter .

przykład.sh polecenie otwarcia pliku. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

2. Zwróć uwagę na wiersze , które zawierają nieoczekiwany błąd tokena w wierszach poleceń w poniższym wyniku.

3. Napraw błąd w każdym wierszu, stosując metody omówione poniżej indywidualnie i zapisując plik.

4. Uruchom plik ponownie po zmianach i sprawdź, czy błąd składni został rozwiązany w pliku.

Przeczytaj także: Jak zainstalować powłokę Linux Bash w systemie Windows 10

Krok I: Przeczytaj zawartość pliku

Pierwszym krokiem do rozwiązania błędu składni w wierszach poleceń jest odczytanie pliku w Terminalu. Jeśli wystąpią problemy z plikiem, możesz nie być w stanie go wyświetlić. Standardową praktyką przeglądania pliku jest uruchomienie pliku za pomocą polecenia ./example.sh , ale nie można modyfikować zawartości pliku. Opcje przeglądania zawartości pliku i modyfikowania wierszy poleceń w celu naprawienia błędu składni w pobliżu nieoczekiwanego tokena '(' są omówione poniżej.

Opcja 1: Za pomocą polecenia CAT

Pierwszą opcją jest użycie polecenia cat do wyświetlenia pliku w skrypcie powłoki. Przeczytaj zawartość pliku z nieoczekiwanym błędem tokena za pomocą polecenia cat, wpisując polecenie cat –v example.sh w terminalu.

Uwaga 1: Plik example.sh służy do celów objaśniających i należy wpisać nazwę pliku, który zawiera nieoczekiwany błąd tokenu.

Uwaga 2: Polecenie cat –v służy do wyświetlania wszystkich niewidocznych znaków, które prawdopodobnie reprezentują powrót karetki lub spację bez przerwy.

plik example.sh otwórz polecenie cat w terminalu linux

Opcja 2: Za pomocą polecenia VX

Jeśli nie możesz użyć polecenia cat, możesz spróbować użyć polecenia vx, aby wyświetlić i zmienić polecenia w pliku, wykonując krok podany poniżej. Wpisz sh –vx ./example.sh polecenie w terminalu, aby otworzyć plik.

sh vx przykład.sh polecenie. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Opcja 3: Poprzez od –dowództwo

3. Jeśli w wierszach poleceń znajduje się kilka niewidocznych znaków, możesz użyć polecenia od –a, aby wyświetlić plik. Jeśli zawartość pliku nie jest widoczna w pliku z kodem, możesz spróbować odczytać plik za pomocą polecenia od –a example.sh , aby zmodyfikować kod.

od przykład.sh polecenie w terminalu linux

Krok II: Usuń przerwy w wierszach systemu Windows

Jeśli w skrypcie powłoki występują podziały wierszy systemu Windows, można użyć poleceń konsoli, aby usunąć podziały wierszy i skopiować wiersze kodu do nowego pliku, aby naprawić błąd.

Wprowadź następujące polecenie w terminalu, aby zapisać zawartość pliku w innym pliku o nazwie correctedexample.sh , aby usunąć podziały wierszy systemu Windows w skrypcie.

 tr –d '\r' <przyklad.sh> poprawionoprzyklad.sh 

polecenie konsoli, aby usunąć łamanie wiersza w systemie Windows. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Krok III: Ustaw uprawnienia do nowo utworzonego pliku

Musisz ustawić uprawnienia do nowo utworzonego pliku, aby edytować plik, aby plik mógł być wykonywany w powłoce. Wpisz polecenie jako chmod 755 correctedexample.sh w terminalu, aby zapewnić uprawnienia do pliku i uruchomić plik. Możesz teraz wyświetlić poprawiony plik i naprawić problemy z formatowaniem oraz naprawić błąd składni w pobliżu nieoczekiwanego tokena „(” w pliku.

chmod 755 poprawiono polecenie.sh, aby ustawić uprawnienia w terminalu linux

Krok IV: Formatuj kod w pliku

Drugim krokiem jest indywidualne sformatowanie linii kodu i ręczna zmiana linii poleceń w pliku. Opcje formatowania pliku w celu naprawienia błędu składni w pobliżu nieoczekiwanego tokena „(” są omówione poniżej w tej sekcji.

Opcja 1: Zamień pojedyncze cudzysłowy na podwójne cudzysłowy

Jeśli używasz pojedynczych cudzysłowów w wierszach poleceń, musisz zmienić polecenie, zastępując pojedynczy cudzysłów podwójnymi cudzysłowami, aby naprawić błąd składni. W pliku example.sh usuń wiersze kodu zawierające i lub pojedyncze cudzysłowy w poleceniu i zastąp pojedyncze cudzysłowy podwójnymi cudzysłowami lub i . Tutaj, w przykładowym pliku, musisz zmienić kod na str= „Pierwszy wiersz polecenia „\(przykładowy plik)\” w skrypcie”

Uwaga: podwójne cudzysłowy są niezbędne dla poleceń typu parametru, takich jak str= „[(1,2),(3,4)]” .

zamień pojedyncze cudzysłowy na podwójne cudzysłowy w pliku example.sh bash

Przeczytaj także: 20 najlepszych lekkich dystrybucji Linuksa z 2022 r.

Opcja 2: Dodaj $ do linii ciągów

Jeśli dodałeś do skryptu wartości ciągu, musisz dodać $ do wartości ciągu, aby naprawić błąd składni w skrypcie. Dodaj $ dla wierszy poleceń z wartościami ciągu , aby naprawić nieoczekiwany błąd. Tutaj, w przykładowym pliku, zmień wiersz poleceń na;

 str= $ 'Pierwszy wiersz polecenia '\(przykładowy plik)\' w skrypcie'

Uwaga: Jeśli używasz $ w wartości ciągu, możesz pominąć sekwencję ucieczki odwrotnego ukośnika, ponieważ wiersze poleceń są dekodowane zgodnie ze standardem ANSI C. Innymi słowy, używając $ jako wartości ciągu, możesz uniknąć używania podwójnych cudzysłowów zamiast pojedynczych cudzysłowów w wierszach poleceń.

znak dolara w liniach ciągu. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Opcja 3: Konwertuj karty na spacje

Spacje, które zostawiłeś między dwoma instrukcjami w poleceniu, muszą być spacjami zamiast tabulatorami, aby naprawić błąd składni w skrypcie. Jeśli otrzymujesz błąd na Cygwin, możesz spróbować przekonwertować tabulatory w kodach na spacje, aby naprawić błąd. Linia poleceń jest podana poniżej jako;

 wykonaj polecenie echo 1; polecenie echa2; polecenie echa3; polecenie echa4; Gotowe 

tabulatory używane w poleceniu do echo w przykładzie.sh pliku bash

Powyższe polecenie należy przepisać, jak pokazano poniżej, aby naprawić błąd.

 wykonaj polecenie echo 1; polecenie echa2; polecenie echa3; polecenie echa4; Gotowe

Opcja 4: Użyj znaków ucieczki

Jeśli używasz znaku bash, ważne jest, aby użyć znaku ucieczki wraz ze znakiem bash, aby naprawić błąd składni. Nawiasy lub () są znakami specjalnymi bash w pliku, dlatego w celu wykonania polecenia należałoby użyć znaku ucieczki lub odwrotnego ukośnika w wierszu poleceń. Polecenie str= 'Pierwszy wiersz polecenia \'(przykładowy plik)\' w skrypcie' nie spowoduje błędu w terminalu, ponieważ używany jest znak ucieczki.

Przeczytaj także: Jak znaleźć się wśród nas w systemie Linux

Opcja 5: Użyj spacji między znakami

Skrypt powłoki rozpoznaje polecenia i instrukcje w skrypcie według wartości domyślnych. Należy zadbać o właściwe wykorzystanie spacji między znakami, aby powłoka mogła zidentyfikować polecenie podane w skrypcie. Spacja to znak używany do rozróżnienia dwóch znaków w wierszu poleceń. W kodzie nie ma spacji między if i [ , co powoduje nieoczekiwany błąd tokena, ponieważ polecenie if[ nie jest identyfikowane przez powłokę. Jeśli kod zostanie zmieniony na if [ $ dzień == „mon” ]; wtedy błąd można rozwiązać za pomocą polecenia biuletynu powłoki, jeśli jest identyfikowany przez powłokę.

Opcja 6: Użyj separatora poleceń dla instrukcji

Różne polecenia w skrypcie powłoki muszą zostać podzielone na instrukcje, aby Terminal mógł zidentyfikować poszczególne polecenia. Musisz użyć separatora poleceń, aby naprawić błąd składni w Linux Bash. Instrukcje w poleceniu muszą być oddzielone separatorem poleceń, takim jak średnik lub ; lub nową linię, naciskając klawisz Enter . Na przykład, polecenie w kodzie if [ $day == „mon” ] musi zostać zmienione tak , jakby [ $day == „mon” ]; następnie naprawić błąd. Ponieważ średnik jest używany jako separator poleceń między znakami [ i then , możesz naprawić ten błąd.

edytuj przykład.sh polecenie w pliku bash. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Opcja 7: Usuń dodatkowe oświadczenia

Czasami możesz dodać dodatkowe instrukcje lub pomieszać kody w przypadku wielu zagnieżdżonych pętli. Musisz usunąć dodatkowe instrukcje z wierszy poleceń, aby naprawić błąd składni w pobliżu nieoczekiwanego tokena „(” w Linux Bash. Bash pętle for…done lub i konstrukcje konstrukcyjne if… fi muszą mieć poprawną składnię. przykładowy plik ma złą składnię w pętli for zawiera termin then , który jest używany w instrukcji if.Zmodyfikowanie kodu w następujący sposób naprawi nieoczekiwany błąd tokena.Instrukcja then jest dodatkową instrukcją w kodzie i usuwa termin naprawi błąd.

 dla ZMIENNEJ w {0..2}; wykonaj polecenie echo 1; polecenie echa2; polecenie echa3; polecenie echa4; Gotowe 

edycja polecenia for w przykładowym pliku bash.sh

Opcja 8: Upewnij się, że kolejność zamykania oświadczeń jest prawidłowa

Jeśli używasz wielu zagnieżdżonych lub warunkowych instrukcji konstrukcji w skrypcie powłoki, musisz upewnić się, że pętle są zamykane w kolejności, w jakiej są otwierane. Możesz użyć nowego separatora linii, aby uniknąć konfliktów z pętlami. Kolejność zamykania zagnieżdżonych pętli i instrukcji warunkowych powinna być poprawna i nie można jej zmieniać. Pętle w kodzie , gdy prawda; wykonaj if [ $ dzień == „mon” ]; następnie powtórz „mon”; w przeciwnym razie echo „nie pon”; Gotowe; fi musi być zamykany we właściwej kolejności. Zmiana kodu, jak pokazano poniżej, może naprawić nieoczekiwany błąd tokenu, ponieważ poprawiona zostanie kolejność zamykania instrukcji.

 podczas gdy prawda; wykonaj if [ $ dzień == „mon” ]; następnie powtórz „mon”; w przeciwnym razie echo „nie pon”; fi; Gotowe 

wykonaj podczas polecenia. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Przeczytaj także: Co to jest interpreter wiersza poleceń?

Metoda 2: Przepisz kod

Jeśli skopiowałeś kod i wkleiłeś go do nowego pliku w Terminalu, możesz spróbować przepisać kod ręcznie, aby naprawić błąd. Błędy w kodzie można naprawić, jeśli napisałeś kod bez błędów formatu w skrypcie powłoki. Dzieje się tak, ponieważ ukryte znaki i problemy z formatowaniem w edytorze tekstu, takim jak Microsoft Word, mogłeś użyć do skopiowania i wklejenia kodu, który mógł spowodować błąd.

Metoda 3: Użyj polecenia Dos2unix.exe

Jeśli używasz systemu operacyjnego Unix, możesz pisać kody ze znakiem nowego wiersza jako \n , aby przejść do następnego wiersza w pliku. Jeśli jednak używasz systemu operacyjnego Windows, musisz przejść do następnego wiersza w kodzie, używając znaku powrotu karetki i wysuwu wiersza lub znaku \r\n w pliku. Jeśli wykonasz kod napisany w systemie operacyjnym Windows w Cygwin, możesz otrzymać błąd składni w pobliżu nieoczekiwanego tokena '('.

Aby naprawić błąd, należy wyczyścić znaki powrotu karetki za pomocą narzędzia wiersza poleceń DOS na Unix jako konwertera formatu pliku tekstowego. Wpisz następujące polecenie jako dos2unix.exe przykład.sh w terminalu i możesz przekonwertować plik do formatu Unix.

polecenie dos2unix.exe przykład.sh. Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena

Zalecana:

  • Jak utworzyć konto Telegram na Androidzie
  • Napraw błąd Runtime C++ w systemie Windows 10
  • Jak trwale usunąć konto Github?
  • Top 14 najlepszych kart graficznych dla systemu Linux

W artykule omówiono podstawowe metody naprawy błędu składni Bash w pobliżu nieoczekiwanego tokena „(” w skrypcie. Jeśli używasz Linux Bash, możesz użyć metod wyjaśnionych w tej sekcji, aby naprawić błąd składni Bash w pobliżu nieoczekiwanego tokena. przeczytałeś cały artykuł i stwierdziłeś, że treść jest przydatna, prosimy o przekazanie nam swoich sugestii i pytań w sekcji komentarzy.