Opravit chybu syntaxe Bash poblíž neočekávaného tokenu

Kódování v Linux Bash Terminal se stalo převládající praxí v sektoru kódování. Softwaroví inženýři a studenti, kteří se učí kódovací jazyk, narážejí na různé chyby. Pokud jste opakovaně viděli chyby, jako je chyba syntaxe u neočekávaného tokenu ‚(‚ nebo chyba syntaxe Bash u neočekávaného tokenu, můžete se zkusit spolehnout na metody popsané v článku a stát se zdatným kodérem. Přečtěte si metody popsané v článku v popsaný příkaz a opravte chyby v příkazových řádcích ve vašem souboru.

Jak opravit chybu syntaxe Bash poblíž neočekávaného tokenu

Linux Bash je interpret příkazového řádku pro systém založený na Linuxu a je náhradou za Bourne Shell nebo sh. Soubory jsou pojmenovány pomocí formátu .sh ve skriptování Linux Bash. Pokud jsou v kódu ve skriptu shellu problémy s formátováním, můžete čelit chybě syntaxe. Pokud se chyba blíží znaku (, shell vás vyzve k chybě v řádku a zobrazí chybu na odpovídajícím řádku. Protože Linux Bash je interpret, řádek s chybou se vám vrátí v Terminál a přestane skenovat zbytek příkazů ve skriptu. Proto musíte opravit chybu v konkrétním příkazovém řádku a přejít k dalšímu, abyste opravili neočekávanou chybu tokenu ve skriptu Shell. Příčiny syntaxe chyba poblíž neočekávaného tokenu v Linux Bash jsou uvedeny níže v této části, jak je uvedeno níže:

  • Kódování pomocí escape sekvencí – Pokud jste kódy napsali ve skriptování Bash, únikové sekvence nebo uvozovky ve skriptu mohou způsobit chyby. Aby se chyba opravila, musí být sekvence escape a uvozovky napsány ve správném formátu.

  • Nesprávná syntaxe v kódovacím souboru – Syntaxe v kódu může způsobit chybu syntaxe, pokud je příkaz napsán v nesprávné syntaxi, například při změně pořadí smyček.

  • Nesprávné použití příkazu – Pokud příkaz nepoužíváte správně, například nesprávné přiřazení hodnoty, můžete mít chybu syntaxe.

  • Nekompatibilní OS v systémech – Pokud shell pro kódovací skript není kompatibilní mezi systémy Unix a DOS, může dojít k neočekávané chybě.

  • Problémy ve skriptu bash shell- Problémy spuštěné ve skriptu bash shell na souboru zkopírovaném z jiného systému mohou způsobit neočekávanou chybu tokenu.

Zvažte soubor s názvem example.sh vytvořený ve skriptování Linux Bash s následujícími příkazovými řádky pro účely vysvětlení. Vzorový soubor má možnosti syntaktických chyb a obsahuje všechny možné příkazy, které lze použít ve skriptu shellu.

str= ‘First command line of ‘(example file)’ in the script’
str= [(1,2),(3,4)]
if[ $day == “mon” ] then
 echo “mon”
else
 echo “no mon”
fi
for VARIABLE in {0..2}; then
do echo command1; echo command2; echo command3; echo command4; done
while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; done; fi

Metoda 1: Ruční oprava chyb v každém příkazovém řádku

První metodou, jak opravit chyby, je opravit chybu syntaxe ručně v každém příkazovém řádku ve skriptu. Kroky k vyřešení chyb syntaxe v blízkosti neočekávaného tokenu v příkazových řádcích jsou popsány v této části. Proces opravy neočekávané chyby tokenu v terminálu je popsán níže. Spusťte soubor v terminálu zadáním příkazu ./example.sh a stisknutím klávesy Enter.

2. Poznamenejte si řádky s neočekávanou chybou tokenu v příkazových řádcích níže uvedeného výsledku.

3. Opravte chybu v každém řádku podle níže uvedených metod a uložte soubor.

4. Po provedení změn spusťte soubor znovu a zkontrolujte, zda je v souboru vyřešena chyba syntaxe.

Krok I: Přečtěte si obsah souboru

Prvním krokem k vyřešení syntaktické chyby v příkazových řádcích je načtení souboru v Terminálu. POKUD dojde k problémům se souborem, nemusí být možné soubor zobrazit. Běžnou praxí prohlížení souboru je spustit soubor pomocí příkazu ./example.sh, ale nemůžete upravovat obsah souboru. Možnosti zobrazení obsahu souboru a úpravy příkazových řádků za účelem opravy chyby syntaxe u neočekávaného tokenu ‚(‚ jsou popsány níže.

Možnost 1: Prostřednictvím příkazu CAT

První možností je použít příkaz cat k zobrazení souboru ve skriptu shellu. Přečtěte si obsah souboru s neočekávanou chybou tokenu pomocí příkazu cat zadáním příkazu cat –v example.sh v Terminálu.

Poznámka 1: Příklad.sh se používá pro účely vysvětlení a je třeba zadat název souboru, který má neočekávanou chybu tokenu.

Poznámka 2: Příkaz cat –v se používá k zobrazení všech neviditelných znaků, které pravděpodobně představují návrat vozíku nebo mezeru bez přerušení.

Možnost 2: Prostřednictvím příkazu VX

Pokud nemůžete použít příkaz cat, můžete zkusit použít příkaz vx k zobrazení a změně příkazů v souboru pomocí kroku uvedeného níže. Soubor otevřete zadáním příkazu sh –vx ./example.sh do Terminálu.

Možnost 3: Prostřednictvím příkazu od –a

3. Pokud je v příkazových řádcích několik neviditelných znaků, můžete k zobrazení souboru použít příkaz od –a. Pokud obsah souboru není viditelný v souboru kódu, můžete zkusit soubor přečíst pomocí příkazu od –a example.sh a kód upravit.

Krok II: Odstraňte zalomení řádků systému Windows

Pokud jsou ve skriptu prostředí Windows zalomené řádky, můžete pomocí příkazů konzoly odstranit zalomení řádků a zkopírovat řádky kódu do nového souboru, abyste chybu opravili.

Zadáním následujícího příkazu do Terminálu uložte obsah souboru do jiného souboru s názvem correctedexample.sh, abyste odstranili zalomení řádků Windows ve skriptu.

tr –d ‘r’ <example.sh> correctedexample.sh

Krok III: Nastavte oprávnění na nově vytvořený soubor

Nově vytvořenému souboru musíte nastavit oprávnění k úpravě souboru, aby bylo možné soubor spustit v prostředí shellu. Zadejte příkaz jako chmod 755 correctedexample.sh v Terminálu, abyste poskytli oprávnění k souboru a spustili soubor. Nyní můžete zobrazit opravený soubor a opravit problémy s formátováním a opravit chybu syntaxe poblíž neočekávaného tokenu ‚(‚ v souboru.

Krok IV: Formátování kódu v souboru

Druhým krokem je formátování řádků kódu jednotlivě a ruční změna příkazových řádků v souboru. Možnosti formátování souboru pro opravu chyby syntaxe poblíž neočekávaného tokenu ‚(‚ jsou popsány níže v této části.

Možnost 1: Nahraďte jednoduché uvozovky dvojitými uvozovkami

Pokud používáte jednoduché uvozovky v příkazových řádcích, musíte změnit příkaz nahrazením jednoduchých uvozovek dvojitými uvozovkami, abyste opravili chybu syntaxe. V souboru example.sh odstraňte řádky kódu, které mají v příkazu ‚ a ‚ nebo jednoduché uvozovky, a nahraďte jednoduché uvozovky dvojitými uvozovkami nebo „ a “. Zde v ukázkovém souboru musíte změnit kód jako str= “První příkazový řádek “(ukázkový soubor)” ve skriptu”

Poznámka: Dvojité uvozovky jsou nezbytné pro příkazy typu parametru, jako je str= “[(1,2),(3,4)]“.

Možnost 2: Přidejte $ do String Lines

Pokud jste do skriptu přidali hodnoty řetězce, musíte k hodnotám řetězce přidat $, abyste opravili chybu syntaxe ve skriptu. Přidejte $ pro příkazové řádky s hodnotami řetězce, abyste neočekávanou chybu opravili. Zde v ukázkovém souboru změňte příkazový řádek jako;

str= $ ‘First command line of ‘(example file)’ in the script’

Poznámka: Pokud v hodnotě řetězce používáte $, můžete obejít sekvenci escape zpětného lomítka, protože příkazové řádky jsou dekódovány standardem ANSI C. Jinými slovy, použitím $ pro hodnotu řetězce se můžete vyhnout použití dvojitých uvozovek místo jednoduchých uvozovek v příkazových řádcích.

Možnost 3: Převést tabulátory na mezery

Mezery, které zbývají mezi dvěma příkazy v příkazu, musí být mezery místo tabulátorů, aby se opravila syntaktická chyba ve skriptu. Pokud se vám chyba na Cygwinu zobrazuje, můžete zkusit převést tabulátory v kódech na mezery, abyste chybu opravili. Příkazový řádek je uveden níže jako;

do echo command1;       echo command2;             echo command3;             echo command4;             done

Výše uvedený příkaz by měl být přepsán, jak je uvedeno níže, aby se chyba opravila.

do echo command1; echo command2; echo command3; echo command4; done

Možnost 4: Použijte únikové znaky

Pokud používáte znak bash, je důležité použít znak escape spolu se znakem bash k opravě chyby syntaxe. Závorky nebo () jsou speciální znaky bash v souboru, proto byste museli použít znak escape nebo zpětné lomítko v příkazovém řádku, abyste upustili od normálních znaků, abyste mohli příkaz provést. Str= ‚První příkazový řádek ‚(příkladový soubor)‘ v příkazu skriptu nezpůsobí chybu v terminálu, protože se používá znak escape.

Možnost 5: Použijte mezeru mezi znaky

Skript shellu rozpoznává příkazy a příkazy ve skriptu podle výchozích hodnot. Musíte zajistit správné využití mezery mezi znaky, aby shell mohl identifikovat příkaz zadaný ve skriptu. Mezera je znak, který se používá k rozlišení dvou znaků v příkazovém řádku. V kódu není mezera mezi if a [, which gives the unexpected token error as the if[ command is not identified by the shell. If the code is changed to if [ $ day == “mon” ]; pak může být chyba vyřešena příkazem bulletinu shellu, pokud je identifikován shellem.

Možnost 6: Použijte oddělovač příkazů pro příkazy

Různé příkazy ve skriptu shellu musí být rozděleny do příkazů, aby terminál identifikoval jednotlivé příkazy. Chcete-li opravit chybu syntaxe v Linux Bash, musíte použít oddělovač příkazů. Příkazy v příkazu musí být odděleny oddělovačem příkazů, jako je středník nebo ; nebo nový řádek stisknutím klávesy Enter. Například příkaz v kódu if [ $ day == “mon” ] pak se musí jakoby změnit [ $ day == “mon” ]; pak opravit chybu. Protože středník se používá jako oddělovač příkazů mezi znaky [ and then, you can fix this error.

Option 7: Remove Additional Statements

Sometimes, you may have added additional statements or may have mixed up the codes in case of multiple nested loops. You need to remove the additional statements on the command lines to fix the Syntax error near unexpected token ‘(’ in the Linux Bash. The bash loops for…done or and the constructional constructs if… fi needs to be in the correct syntax. The example file has the wrong syntax in the for loop has the term then which is used in the if statement. Modifying the code as the following code will fix the unexpected token error. The statement then is an additional statement in the code and removing the term will fix the error.

for VARIABLE in {0..2}; do echo command1; echo command2; echo command3; echo command4; done 

Option 8: Ensure Order of Closing of Statements is Correct

If you are using many nested or conditional construct statements in the shell script, you have to ensure that the loops are closed in the order they are opened. You can use a new line separator to avoid conflicts with the loops. The order of closing the nested loops and conditional statements should be correct and must not be altered. The loops in the code while true; do if [ $ day == “mon” ]; pak echo „mon“; jinak echo „ne mon“; Hotovo; fi je třeba uzavřít ve správném pořadí. Úprava kódu, jak je uvedeno níže, může opravit neočekávanou chybu tokenu, protože se opravuje pořadí uzavírání příkazů.

while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; fi; done

Metoda 2: Přepište kód

Pokud jste kód zkopírovali a vložili do nového souboru v terminálu, můžete zkusit kód přepsat ručně, abyste chybu opravili. Chyby v kódu lze opravit, pokud jste kód napsali bez jakýchkoli chyb formátu ve skriptu shellu. Chybu totiž mohly způsobit skryté znaky a problémy s formátováním v textovém editoru, jako je Microsoft Word, který jste mohli použít ke zkopírování a vložení kódu.

Metoda 3: Použijte příkaz Dos2unix.exe

Pokud používáte operační systém Unix, můžete psát kódy se znakem posunu řádku jako n pro přesun na další řádek v souboru. Pokud však používáte operační systém Windows, musíte se přesunout na další řádek v kódu pomocí znaku návratu vozíku a posunu řádku nebo znaku rn v souboru. Pokud spustíte kód napsaný v OS Windows v Cygwinu, může se objevit chyba syntaxe poblíž neočekávaného tokenu ‚(‚.

Chcete-li chybu opravit, musíte vymazat znaky pro návrat vozíku pomocí nástroje příkazového řádku DOS na Unix jako převodník formátu textového souboru. Zadejte následující příkaz jako dos2unix.exe example.sh v Terminálu a můžete převést soubor do formátu Unix.

***

Článek pojednává o základních metodách, jak opravit chybu syntaxe Bash poblíž neočekávaného tokenu ‚(‚ ve skriptu. Pokud používáte Linux Bash, můžete použít metody popsané v této části k opravě chyby syntaxe Bash poblíž neočekávaného tokenu. Pokud přečetli jste si celý článek a zjistili, že obsah je užitečný, dejte nám prosím vědět své návrhy a dotazy v sekci komentářů.

  Jak používat exponenty v Excelu