Napraw błąd składni Bash w pobliżu nieoczekiwanego tokena
Opublikowany: 2022-05-30Kodowanie 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.
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
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 .
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.
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.
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.
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
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.
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)]” .
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ń.
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
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.
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
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
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.
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.