Chyba syntaxe: neočekávaný konec souboru – bash skript [uzavřeno]

Uzavřeno . Tato otázka vyžaduje podrobnosti nebo jasnost . Momentálně nepřijímá odpovědi.

Komentáře

  • (0) Možná by bylo užitečnější ukázat nám rozdíl od poslední fungující verze. …………………… Některá pozorování (která se pravděpodobně netýkají vašeho aktuálního konkrétního problému): (1) Nevím o žádných okolnostech, kdy potřebujete neudržovaný ; (středník) na konci řádku. Středníky můžete odstranit na koncích řádků 157, 161, 165, 168 a 169. (Nebo je můžete ponechat; myslím, že je to otázka stylu.)… (Pokračování)
  • (Pokračovat) … (2) Měli byste vždy citovat proměnné prostředí, pokud k tomu nemáte dobrý důvod a jste si jisti, že víte, co děláte; např. "$1", "$2", "$SECONDS" a "$starttime". (3) Je snazší číst a ladit správně odsazený kód. (4) Proč nastavujete FS a nepoužíváte jej? (5) `…` lze psát $(…). (6) $(($SECONDS - $starttime)) lze ekvivalentně napsat $((SECONDS - starttime)). Opět jde v zásadě o styl. (7) Proč ve smyčce tisknete "$words_read", když to ve smyčce neměníte?
  • Zde je postup ladění: Zkuste odstranit řádky 157- 174 a opětovné spuštění skriptu. Pokud se chyba stále zobrazuje (pravděpodobně nahlášena jako linka 157 nebo 158), pak víte, že problém není v řádcích 157-174 a musíte se ohlížet dále zpět (takže opakujte proces, dokud chyba nezmizí). … (Cont’d)
  • (Cont’d) … Jakmile chyba zmizí, vložte poslední odstraněné řádky zpět a začněte je odstraňovat. Například pokud odstraněním řádků 157-174 chyba zmizí, vložte je zpět, ale pak odstraňte řádky 159-160, 163-168 a 171-172. Zkuste nahradit `grep …` seznamem hodnot. Jinými slovy, použijte proces eliminace.
  • Poznámky k několika komentářům Scotta ': (ad 2), pokud jste si jisti, co děláte pak (ve zveřejněném kódu) potřebuje pouze "$1" citovat, (ad 4), pravděpodobně měl na mysli IFS (a ne FS)?

odpověď

Diagnostický “ neočekávaný konec souboru „ je náznak, že máte nějaký nesrovnaný nebo neukončený úvodní syntaktický konstrukt (if w / o fi, do bez done, úvodní závorky bez přidružené uzavírací, úvodní, ale neukončené uvozovky atd.). Číslo řádku směřující na konec skriptu není v tomto případě užitečné, kromě toho, že říkáte, abyste zkontrolovali své syntaktické konstrukce; chyba může být kdekoli ve vašem kódu. Musíte to zkontrolovat.

Komentáře

  • Děkujeme za odpověď. Zjistil jsem chybu a opravil ji!
  • – chyba může být kdekoli ve vašem kódu. Účet byl vytvořen za účelem hlasování pro tuto radu.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *