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

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

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

Ez a hibaüzenet akkor is felszínre kerül, amikor parancsokat ír be a Linux parancssorába a mindennapi feladatokhoz, például a fájlok manuális másolásához stb. 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 a szintaxis ezer hibája lehet. A hiba fő okai a következők:

  • Rossz szintaxis bármelyik parancs végrehajtásakor bármelyik platformon. Vagy nem megfelelően használja a parancsot, vagy rossz szintaxist adott meg.
  • A shell nem kompatibilis a Unix / DOS rendszerek között.
  • Vannak problémák, amelyek egy másik forrásból futtatják a bash shell parancsfájlt .

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 ezt a hibaüzenetet tapasztalhatja, az a kód hibás szintaxisa, vagy 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 fokozott gondossággal kell eljárni a további helyért , a dupla idézőjelek használatáért és a kötelező paraméterekért. 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éter típusa miatt dupla idézőjelek szükségesek. Egy további szóköz tönkreteheti a kódot, és a hibaüzenetet kényszeríti. Győződjön meg arról, hogy ellenőrizte a végrehajtott parancs hivatalos dokumentációját , és megnézi, van-e ott 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 az új sor a kocsi visszatérésének (\ r), majd a sor előtolásnak (\ n) 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.

A 'dos2unix.exe' parancs használata

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.