Javítás: Szintaxis hiba váratlan token közelében ('



Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére

A hibaüzenet szintaktikai hiba váratlan token közelében (' a Unix típusú környezetben, a Cygwinben és a Windows parancssori felületén fordul elő. Ez a hiba valószínűleg akkor jelentkezik, amikor megpróbál futtatni egy shell parancsfájlt, amelyet régebbi DOS / Windows vagy Mac rendszerekben szerkesztettek vagy hoztak létre.



Szintaxis hiba váratlan token közelében (

Szintaxis hiba váratlan token közelében ('



Ez a hibaüzenet akkor is megjelenik, amikor parancsokat ír be a Linux parancssorába a mindennapi feladatokhoz, például a fájlok kézi másolásához stb. Ennek a hibaüzenetnek a fő oka vagy a rossz szintaxis, vagy az operációs rendszer problémája egy másik rendszer parancsainak értelmezésében / héj.



Mi okozza a szintaktikai hibát a váratlan token ('? Közelében?

Ennek a hibaüzenetnek az okai nagyon sokfélék és nem sorolhatók fel egy cikkben, mivel a parancsok végrehajtásakor ezerféle lehetőség van arra, hogy a szintaxis téves legyen. A hiba fő okai a következők:

  • Rossz szintaxis bármelyik platform bármely parancsának végrehajtásakor. Vagy nem megfelelően használja a parancsot, vagy rossz szintaxist adott meg.
  • A héj nem az összeegyeztethető Unix / DOS rendszerek között.
  • Vannak problémák a bash shell script futtatásakor másik forrás .

Ebben a cikkben feltételezzük, hogy ismeri a kódolás alapjait, és van elképzelése arról, hogy mit csinál. Ha Ön kezdő, akkor a legjobb, ha követi a végrehajtani kívánt nyelv / parancs részletes bemutatóit. Valószínűleg valamilyen szintaxist hibázott.

1. megoldás: A parancsok szintaxisának és formátumának ellenőrzése

Az első és legfontosabb ok, amiért előfordulhat, hogy ez a hibaüzenet a kód hibás szintaxisa, vagy ha nem követi a parancsok pontos formátumát. Minden parancsnak van egy előre definiált formátuma, amelyet a dokumentációjában láthat. Számos paraméter választható, mások kötelezőek.



Ezenkívül különös gonddal kell eljárni extra hely , használata kettős idézetek , és a kötelező szükséges paraméterek. Ha bármelyik hiányzik vagy helytelenül lett bejelentve, akkor nem tudja végrehajtani a kódját.

Például a következő kód helyett

[mycom7] # ./ctopo.sh um_test1 [(1,2), (2,1)]

Úgy kell végrehajtanod

[mycom7] # ./ctopo.sh um_test1 '[(1,2), (2,1)]'

Győződjön meg arról is, hogy a parancsokat / shell parancsfájlokat helyesen hajtja-e végre, ha azok több sort is átívelnek.

A paramétertípus miatt dupla idézőjelek szükségesek. Egy további szóköz a kódot is tönkreteheti, és a hibaüzenetet kényszerítheti. Ügyeljen arra, hogy ellenőrizze a hivatalos dokumentáció parancsot, és ellenőrizze, hogy van-e ott valami probléma.

2. megoldás: A shell szkript hibaelhárítása

Ha olyan parancsfájlt használ, amely a forrásrendszerben működik, de hibát ad vissza a célpontban, akkor a szkript hibakeresését ellenőrizheti a végrehajtás során tárolt változók ellenőrzésével, majd megnézheti, hogy mi okozza a problémát. Ez nagyon gyakori ok, mivel több esetben a shell megpróbálja értelmezni egy nem nyomtatható karaktert.

Futtassa a héjat a „vx” paraméterrel. Ez megmutatja, milyen parancsokat futtatnak, és milyen értékeket tárolnak a szkriptben. Itt keresztül megoldhatja a hibákat és diagnosztizálhatja, hogy mi a baj.

Például hajtsa végre a parancsfájlt a terminálban, miután a „vx” szót beillesztette:

# sh -vx ./test_script5.sh

A szkript tartalmát a „cat” paranccsal ellenőrizheti:

# cat test_script5.sh

3. megoldás: A ’dos2unix.exe’ parancs használata

A Windows / DOS szövegfájlokban egy új sor a kocsi visszatérésének ( r), majd a sor előtolásnak ( n) a kombinációja. Mac-ben (a Mac OS X előtt) egy sortörésnél egyszerű Carriage Return-t ( r) használtak. A Unix / Linux és a Mac OS X a Line Feed ( n) sortöréseket használja. Ha a Cygwint használja, akkor az extra Carriage Return ( r) karakter miatt nem tudja feldolgozni a DOS / Windows és a régebbi Mac szkriptjeit.

Használata

A ’dos2unix.exe’ paranccsal

Itt elkészítheti a ’dos2unix.exe’ parancsot, amely a szkriptet a megfelelő formátumra konvertálja, majd probléma nélkül végrehajthatja.

Befejezésül meg kell vizsgálnia a parancsokat és a használt platform típusát, és ellenőriznie kell, hogy nincsenek-e eltérések. Mivel nem tudjuk lefedni az egyes lehetőségeket, van egy ötlete, hogy milyen hibák fordulhatnak elő és hogyan lehet ezeket kijavítani.

3 perc olvasás