Szintaxishiba: fájl váratlan befejezése – Bash szkript [bezárva]

Zárt . Ehhez a kérdéshez részletekre vagy egyértelműségre van szükség . Jelenleg nem fogadja el a válaszokat.

Megjegyzések

  • (0) Hasznosabb lehetett megmutatni a különbséget a legutóbb működő verziótól. …………………… Néhány megfigyelés (amely valószínűleg nem kapcsolódik a jelenlegi, konkrét problémájához): (1) Nem ismerek olyan körülményeket, ahol szükség lenne egy elmaradt ; (pontosvessző) egy sor végén. Törölheti a pontosvesszőket a 157., 161., 165., 168. és 169. sor végén. (Vagy hagyhatja őket; azt hiszem, stílus kérdése.)… (Folytatás)
  • (Folytatás)… (2) Mindig idézzen héjváltozókat, hacsak nincs jó oka arra, hogy ne, és biztos benne, hogy tudja, mit csinál; pl. "$1", "$2", "$SECONDS" és "$starttime". (3) Könnyebb a megfelelően behúzott kód olvasása és hibakeresése. (4) Miért állítja be a FS beállítást, majd nem használja? (5) `…` írható $(…). (6) $(($SECONDS - $starttime)) ekvivalensen írható $((SECONDS - starttime)). Megint ez alapvetően a stílus kérdése. (7) Miért nyomtat "$words_read" a ciklusba, amikor nem módosítja a ciklusban?
  • Itt van egy hibakeresési módszer: Próbálja meg törölni a 157- 174 és újra futtatja a szkriptet. Ha még mindig megkapja a hibát (valószínűleg a 157. vagy a 158. sorban jelentik), akkor tudja, hogy a probléma nem található a 157–174. Sorban, és vissza kell néznie (tehát ismételje meg addig, amíg a hiba elmúlik). … (Folytatás)
  • (folytatás) … Amint a hiba megszűnik, tegye vissza a legutóbb törölt sorokat, és kezdje el őket szétcsúsztatni. Például, ha a 157-174 sorok törlésével a hiba elmúlik, tegye vissza őket, de törölje a 159-160, 163-168 és 171-172 sorokat. Próbálja meg kicserélni a `grep …` értékek listájára. Más szavakkal, használja az elimináció folyamatát.
  • Megjegyzések néhány Scott ' megjegyzéshez: (2. hirdetés), ha biztos benne, hogy mit csinál akkor (a közzétett kódban) csak "$1" kell idézni, (4. hirdetés) valószínűleg IFS -re gondolt (és nem FS)?

Válasz

A diagnosztikai ” fájl váratlan vége “ arra utal, hogy van páratlan vagy befejezetlen nyitó szintaktikai konstrukciója (if w / o fi, do w / o done, zárójelek nyitása a kapcsolódó zárójel nélkül, nyitó, de befejezetlen idézetek stb.). A szkript végére mutató sorszám ebben az esetben nem segít, azon túl, hogy mondjuk a szintaktikai konstrukciók ellenőrzését; a hiba bárhol lehet a kódban. Ezt ellenőriznie kell.

Megjegyzések

  • Köszönöm a választ. Megtaláltam a hibát és kijavítottam!
  • – a hiba bárhol lehet a kódban. Létrehozott egy fiókot, csak azért, hogy szavazzon erre a tanácsra.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük