Opravte chybu syntaxe Bash v blízkosti neočakávaného tokenu
Rôzne / / May 30, 2022
Kódovanie v termináli Linux Bash sa stalo prevládajúcou praxou v sektore kódovania. Softvér Inžinieri a študenti, ktorí sa učia kódovací jazyk, narážajú na rôzne chyby. Ak ste opakovane videli chyby, ako je chyba syntaxe v blízkosti neočakávaného tokenu „(“ alebo chyba syntaxe Bash v blízkosti neočakávaného tokenu, môžete skúsiť spoľahnúť sa na metódy opísané v článku a stať sa odborníkom kódovač. Prečítajte si metódy opísané v článku v uvedenom poradí a opravte chyby v príkazových riadkoch vo svojom súbore.
Obsah
- Ako opraviť chybu syntaxe Bash v blízkosti neočakávaného tokenu
- Metóda 1: Manuálne opravte chyby v každom príkazovom riadku
- Krok I: Prečítajte si obsah súboru
- Krok II: Odstráňte zlomy riadkov systému Windows
- Krok III: Nastavte povolenia na novovytvorený súbor
- Krok IV: Formátovanie kódu v súbore
- Metóda 2: Prepíšte kód
- Metóda 3: Použite príkaz Dos2unix.exe
Ako opraviť chybu syntaxe Bash v blízkosti neočakávaného tokenu
Linux Bash je tlmočník príkazového riadka pre systém založený na Linuxe a je náhradou za Bourne Shell alebo sh. Súbory sú pomenované pomocou formátu .sh v systéme Linux
Bash skriptovanie. Ak sú problémy s formátovaním v kóde v skripte shellu, môžete čeliť chybe syntaxe. Ak je chyba blízko k ( znak, shell vás vyzve na chybu v riadku a zobrazí chybu v príslušnom riadku. Keďže Linux Bash je tlmočník, riadok s chybou sa vám vráti do terminálu a zastaví skenovanie zvyšku príkazov v skripte. Preto musíte opraviť chybu v konkrétnom príkazovom riadku a prejsť na ďalší, aby ste opravili neočakávanú chybu tokenu v skripte shellu. Príčiny chyby syntaxe v blízkosti neočakávaného tokenu v Linux Bash sú uvedené nižšie v tejto časti:- Kódovanie s únikovými sekvenciami- Ak ste kódy napísali v skriptovaní Bash, sekvencie escape alebo úvodzovky v skripte môžu spôsobiť chyby. Na opravu chyby musia byť sekvencie escape a úvodzovky napísané v správnom formáte.
- Nesprávna syntax v kódovacom súbore- Syntax v kóde môže spôsobiť chybu syntaxe, ak je príkaz napísaný v nesprávnej syntaxi, ako je napríklad zmena poradia slučiek.
- Nesprávne použitie príkazu - Ak príkaz nepoužívate správne, napríklad nesprávne priradenie hodnoty, môžete mať chybu syntaxe.
- Nekompatibilný OS v systémoch- Ak shell pre kódovací skript nie je kompatibilný medzi systémami Unix a DOS, môže sa vyskytnúť neočakávaná chyba.
- Problémy v skripte bash shell- Problémy spustené v skripte bash shell na súbore skopírovanom z iného systému môžu spôsobiť neočakávanú chybu tokenu.
Zvážte súbor s názvom example.sh vytvorené v skriptovaní Linux Bash pomocou nasledujúcich príkazových riadkov na účely vysvetlenia. Vzorový súbor má možnosti pre syntaktické chyby a obsahuje všetky možné príkazy, ktoré možno použiť v skripte shellu.
str= ‘Prvý príkazový riadok ‘(vzorový súbor)’ v skripte’str= [(1,2),(3,4)]if[ $day == “pon” ] potom echo "po"inak echo „nie mon“fipre PREMENNÚ v {0..2}; potomurobiť príkaz echo1; príkaz echo2; príkaz echo3; príkaz echo4; hotovýzatiaľ čo pravdivé; do if [ $ deň == “pon” ]; potom echo „mon“; inak echo „nie mon“; hotový; fi
Metóda 1: Manuálne opravte chyby v každom príkazovom riadku
Prvý spôsob, ako opraviť chyby, je opraviť chybu syntaxe manuálne v každom príkazovom riadku v skripte. Kroky na vyriešenie chýb syntaxe v blízkosti neočakávaného tokenu v príkazových riadkoch sú popísané v tejto časti. Proces opravy neočakávanej chyby tokenu v termináli je popísaný nižšie. Spustite súbor v Terminál zadaním ./example.sh príkaz a stlačením tlačidla Zadajtekľúč.
2. Všimnite si linky ktoré majú neočakávanú chybu tokenu v príkazových riadkoch vo výsledku nižšie.
3. Opravte chybu v každom riadku podľa nižšie uvedených metód jednotlivo a šetrenie súbor.
4. Bežať súbor znova po zmenách a skontrolujte, či sa chyba syntaxe v súbore nevyriešila.
Prečítajte si tiež:Ako nainštalovať Linux Bash Shell na Windows 10
Krok I: Prečítajte si obsah súboru
Prvým krokom k vyriešeniu chyby syntaxe v príkazových riadkoch je načítanie súboru v termináli. AK sa vyskytnú problémy so súborom, možno ho nebudete môcť zobraziť. Bežnou praxou prezerania súboru je spustenie súboru pomocou príkazu ./example.sh ale nemôžete upravovať obsah súboru. Možnosti zobrazenia obsahu súboru a úpravy príkazových riadkov na opravu chyby syntaxe v blízkosti neočakávaného tokenu „(“ sú popísané nižšie.
Možnosť 1: Prostredníctvom príkazu CAT
Prvou možnosťou je použiť kat príkaz na zobrazenie súboru v skripte shellu. Prečítajte si obsah súboru s neočakávanou chybou tokenu pomocou príkazu cat zadaním príkazu mačka –v príklad.sh v Termináli.
Poznámka 1: The example.sh sa používa na účely vysvetlenia a musíte zadať názov súboru, ktorý má neočakávanú chybu tokenu.
Poznámka 2: Príkaz cat –v sa používa na zobrazenie všetkých neviditeľných znakov, ktoré pravdepodobne predstavujú návrat vozíka alebo medzeru bez zalomenia.
Možnosť 2: Prostredníctvom príkazu VX
Ak nemôžete použiť príkaz cat, môžete skúsiť použiť príkaz vx na zobrazenie a zmenu príkazov v súbore pomocou kroku uvedeného nižšie. Napíšte sh –vx ./example.sh príkaz v termináli na otvorenie súboru.
Možnosť 3: Prostredníctvom príkazu od –a
3. Ak sa v príkazových riadkoch nachádza niekoľko neviditeľných znakov, na zobrazenie súboru môžete použiť príkaz od –a. Ak obsah súboru nie je viditeľný v kódovom súbore, môžete skúsiť prečítať súbor pomocou príkazu od –príklad.sh na úpravu kódu.
Krok II: Odstráňte zlomy riadkov systému Windows
Ak sa v skripte shellu nachádzajú zlomy riadkov systému Windows, môžete pomocou príkazov konzoly odstrániť zlomy riadkov a skopírovať riadky kódu do nového súboru, aby ste chybu opravili.
Ak chcete uložiť obsah súboru do iného pomenovaného súboru, zadajte do terminálu nasledujúci príkaz opravený príklad.sh na odstránenie zalomení riadkov systému Windows v skripte.
tr –d „\r“opravený príklad.sh
Krok III: Nastavte povolenia na novovytvorený súbor
Novovytvorenému súboru musíte nastaviť oprávnenie na úpravu súboru, aby bolo možné súbor spustiť v shelli. Zadajte príkaz ako chmod 755 opravený príklad.sh v termináli, aby ste poskytli oprávnenia súboru a spustili ho. Teraz môžete zobraziť opravený súbor a opraviť problémy s formátovaním a opraviť chybu syntaxe blízko neočakávaného tokenu „(“ v súbore.
Krok IV: Formátovanie kódu v súbore
Druhým krokom je naformátovať riadky kódu jednotlivo a manuálne zmeniť príkazové riadky v súbore. Možnosti formátovania súboru na opravu chyby syntaxe v blízkosti neočakávaného tokenu „(“ sú popísané nižšie v tejto časti.
Možnosť 1: Nahradiť jednoduché kotácie dvojitými kotáciami
Ak používate jednoduché úvodzovky v príkazových riadkoch, musíte zmeniť príkaz nahradením jednoduchých úvodzoviek dvojitými úvodzovkami, aby ste opravili chybu syntaxe. V example.sh súbor, odstráňte riadky kódu, ktoré majú ‘ a ’ alebo jednoduché úvodzovky v príkaze a nahraďte jednoduché úvodzovky znakom dvojité úvodzovky alebo “ a ’’. Tu, vo vzorovom súbore, musíte zmeniť kód ako str= “Prvý príkazový riadok “\(vzorový súbor)\” v skripte”
Poznámka: Dvojité úvodzovky sú potrebné pre príkazy typu parametra, ako napr str= “[(1,2),(3,4)]”.
Prečítajte si tiež:20 najlepších ľahkých linuxových distribúcií roku 2022
Možnosť 2: Pridajte $ do String Lines
Ak ste do skriptu pridali hodnoty reťazca, musíte k hodnotám reťazca pridať znak $, aby ste opravili chybu syntaxe v skripte. Pridajte $ pre príkazové riadky s reťazec hodnoty na opravu neočakávanej chyby. Tu vo vzorovom súbore zmeňte príkazový riadok ako;
str= $ ‘Prvý príkazový riadok ‘\(vzorový súbor)\’ v skripte’
Poznámka: Ak používate $ v hodnote reťazca môžete obísť sekvenciu escape spätného lomítka, pretože príkazové riadky sú dekódované štandardom ANSI C. Inými slovami, použitím $ pre hodnotu reťazca sa môžete vyhnúť používaniu dvojitých úvodzoviek namiesto jednoduchých úvodzoviek v príkazových riadkoch.
Možnosť 3: Preveďte tabulátory na medzery
Medzery, ktoré vám zostali medzi dvoma príkazmi v príkaze, musia byť medzery namiesto tabulátorov, aby sa opravila chyba syntaxe v skripte. Ak sa vám chyba zobrazuje na Cygwine, môžete skúsiť skonvertovať karty v kódoch na medzery, aby ste chybu opravili. Príkazový riadok je uvedený nižšie ako;
urobiť príkaz echo1; príkaz echo2; príkaz echo3; príkaz echo4; hotový
Vyššie uvedený príkaz by sa mal prepísať, ako je uvedené nižšie, aby sa chyba opravila.
urobiť príkaz echo1; príkaz echo2; príkaz echo3; príkaz echo4; hotový
Možnosť 4: Použite únikové znaky
Ak používate znak bash, je dôležité použiť znak escape spolu so znakom bash na opravu chyby syntaxe. The zátvorkách alebo () sú v súbore špeciálne znaky bash, preto by ste museli použiť znak escape alebo spätné lomítko v príkazovom riadku, aby ste unikli normálnym znakom na vykonanie príkazu. The str= 'Prvý príkazový riadok \'(ukážkový súbor)\' v skripte' príkaz nespôsobí chybu v termináli, pretože sa používa znak escape.
Prečítajte si tiež: Ako sa dostať medzi nás na Linuxe
Možnosť 5: Použite medzeru medzi znakmi
Skript shell rozpoznáva príkazy a príkazy v skripte podľa predvolených hodnôt. Musíte zabezpečiť správne využitie priestoru medzi znakmi, aby shell mohol identifikovať príkaz uvedený v skripte. Medzera je znak, ktorý sa používa na rozlíšenie dvoch znakov v príkazovom riadku. V kóde nie je medzera medzi ak a [, čo dáva neočakávanú chybu tokenu ako ak[ príkaz nie je identifikovaný shellom. Ak sa kód zmení na if [ $ deň == “pon” ]; potom môže byť chyba vyriešená príkazom shell bulletinu ak sa pozná podľa škrupiny.
Možnosť 6: Použite oddeľovač príkazov pre príkazy
Rôzne príkazy v shell skripte musia byť rozdelené do príkazov pre terminál, aby bolo možné identifikovať jednotlivé príkazy. Ak chcete opraviť chybu syntaxe v Linux Bash, musíte použiť oddeľovač príkazov. Príkazy v príkaze musia byť oddelené oddeľovačom príkazov, ako je bodkočiarka alebo a ; alebo nový riadok stlačením tlačidla Zadajte kľúč. Napríklad príkaz v kóde if [ $ deň == “pon” ] potom musí byť zmenený ako if [ $ deň == “pon” ]; potom opraviť chybu. Pretože bodkočiarka sa používa ako oddeľovač príkazov medzi znakmi [ a potom, môžete túto chybu opraviť.
Možnosť 7: Odstráňte dodatočné výpisy
Niekedy ste mohli pridať ďalšie príkazy alebo ste mohli pomiešať kódy v prípade viacerých vnorených slučiek. Ak chcete opraviť chybu syntaxe blízko neočakávaného tokenu „(“ v Linux Bash, musíte odstrániť ďalšie príkazy z príkazových riadkov. Slučky bash za… hotovo alebo a konštrukčné konštrukcie ak... fi musí byť v správnej syntaxi. Vzorový súbor má nesprávnu syntax v pre slučka má výraz potom ktorý sa používa v ak vyhlásenie. Úprava kódu podľa nasledujúceho kódu opraví neočakávanú chybu tokenu. Výkaz potom je dodatočný výraz v kóde a odstránením výrazu sa chyba opraví.
pre PREMENNÚ v {0..2}; urobiť príkaz echo1; príkaz echo2; príkaz echo3; príkaz echo4; hotový
Možnosť 8: Uistite sa, že poradie uzávierky výpisov je správne
Ak v skripte shellu používate veľa vnorených alebo podmienených príkazov konštrukcie, musíte zabezpečiť, aby sa cykly uzatvárali v poradí, v akom sa otvárajú. Môžete použiť nový oddeľovač riadkov, aby ste sa vyhli konfliktom so slučkami. Poradie uzatvárania vnorených slučiek a podmienených príkazov by malo byť správne a nesmie sa meniť. Slučky v kóde zatiaľ čo pravdivé; do if [ $ deň == “pon” ]; potom echo „mon“; inak echo „nie mon“; hotový; fi je potrebné uzavrieť v správnom poradí. Zmena kódu, ako je uvedené nižšie, môže opraviť neočakávanú chybu tokenu, pretože sa opravuje poradie uzatvárania príkazov.
zatiaľ čo pravdivé; do if [ $ deň == “pon” ]; potom echo „mon“; inak echo „nie mon“; fi; hotový
Prečítajte si tiež:Čo je tlmočník príkazového riadka?
Metóda 2: Prepíšte kód
Ak ste skopírovali kód a prilepili ho do nového súboru v termináli, môžete skúsiť prepísať kód manuálne, aby ste chybu opravili. Chyby v kóde je možné opraviť, ak ste kód napísali bez akýchkoľvek chýb formátu v skripte shellu. Je to preto, že chybu mohli spôsobiť skryté znaky a problémy s formátovaním v textovom editore, ako je Microsoft Word, ktorý ste mohli použiť na skopírovanie a prilepenie kódu.
Metóda 3: Použite príkaz Dos2unix.exe
Ak používate operačný systém Unix, môžete písať kódy so znakom posunu riadkov ako \n pre prechod na ďalší riadok v súbore. Ak však používate operačný systém Windows, musíte sa presunúť na ďalší riadok v kóde pomocou znaku návratu vozíka a posunu riadka alebo \r\n v súbore. Ak spustíte kód napísaný v operačnom systéme Windows v Cygwin, môžete dostať chybu syntaxe blízko neočakávaného tokenu „(“.
Ak chcete chybu opraviť, musíte vymazať znaky návratu vozíka pomocou DOS na Unix nástroj príkazového riadka ako prevodník formátov textových súborov. Zadajte nasledujúci príkaz ako dos2unix.exe example.sh v termináli a súbor môžete previesť do formátu Unix.
Odporúčané:
- Ako vytvoriť účet Telegram v systéme Android
- Oprava Runtime Error C++ v systéme Windows 10
- Ako natrvalo odstrániť účet Github
- Top 14 najlepších grafických kariet pre Linux
Článok diskutoval o základných metódach opravy Chyba syntaxe Bash v blízkosti neočakávaného tokenu‘(’ v scenári. Ak používate Linux Bash, môžete použiť metódy vysvetlené v tejto časti na opravu chyby syntaxe Bash v blízkosti neočakávaného tokenu. Ak ste si prečítali celý článok a zistili ste, že obsah je užitočný, dajte nám vedieť svoje návrhy a otázky v sekcii komentárov.