Javítsa ki a Bash szintaktikai hibát a váratlan token közelében
Vegyes Cikkek / / May 30, 2022
A Linux Bash Terminalban történő kódolás a kódolási szektorban uralkodó gyakorlattá vált. A szoftvermérnökök és a kódoló nyelvet tanuló hallgatók különféle hibákba ütköznek. Ha ismételten olyan hibákat észlelt, mint például a Syntax error (szintaktikai hiba a váratlan token '(') közelében vagy a Bash szintaktikai hiba váratlan token közelében, megpróbálhatja a cikkben leírt módszerekre támaszkodni, és járatossá válni kódoló. Olvassa el a cikkben leírt módszereket a leírt sorrendben, és javítsa ki a fájl parancssoraiban lévő hibákat.
Tartalom
- A Bash szintaktikai hibája a váratlan token közelében
- 1. módszer: Javítsa ki manuálisan a hibákat az egyes parancssorban
- I. lépés: Olvassa el a fájl tartalmát
- II. lépés: Távolítsa el a Windows sortöréseket
- III. lépés: Állítsa be az újonnan létrehozott fájl engedélyeit
- IV. lépés: Formázza meg a kódot a fájlban
- 2. módszer: Kód újraírása
- 3. módszer: Használja a Dos2unix.exe parancsot
A Bash szintaktikai hibája a váratlan token közelében
A Linux Bash egy parancssori értelmező a Linux alapú rendszerekhez, és a Bourne Shell vagy sh helyettesítője. A fájlok elnevezése .sh formátumban történik a Linuxban
Bash scriptelés. Ha formázási problémák vannak a shell script kódjában, szintaktikai hibával szembesülhet. Ha a hiba közel van a ( karaktert, a shell figyelmezteti a sorban lévő hibára, és megjeleníti a hibát a megfelelő sorban. Mivel a Linux Bash egy értelmező, a hibát tartalmazó sort visszaküldi Önnek a terminál, és leállítja a szkript többi parancsának vizsgálatát. Ezért ki kell javítania a hibát az adott parancssorban, és tovább kell lépnie a következőre, hogy kijavítsa a váratlan token hibát a shell szkriptben. A Linux Bash-ban a váratlan token közelében fellépő szintaktikai hiba okait az alábbiakban soroljuk fel ebben a részben, az alábbiak szerint:- Kódolás escape szekvenciákkal- Ha a kódokat Bash-szkripttel írta, az escape szekvenciák vagy a szkriptben lévő idézőjelek hibákat okozhatnak. A hiba kijavításához a escape szekvenciákat és az idézőjeleket a megfelelő formátumban kell írni.
- Helytelen szintaxis a kódoló fájlban- A kódban lévő szintaxis szintaktikai hibát okozhat, ha a parancs rossz szintaxisban van írva, például megváltoztatja a ciklusok sorrendjét.
- A parancs helytelen használata- Ha nem megfelelően használja a parancsot, például helytelen érték-hozzárendelést, akkor szintaktikai hiba léphet fel.
- Nem kompatibilis operációs rendszer a rendszerekben- Ha a kódoló szkript shellje nem kompatibilis a Unix és a DOS rendszerek között, akkor váratlan hiba léphet fel.
- Problémák a bash shell szkripttel- A másik rendszerről másolt fájl bash shell szkriptjében futó problémák váratlan token hibát okozhatnak.
Tekintsünk egy nevű fájlt példa.sh a Linux Bash parancsfájlban a következő parancssorokkal készült magyarázó céllal. A példafájl lehetőséget ad szintaktikai hibákra, és tartalmazza az összes lehetséges parancsot, amely a shell szkriptben használható.
str= ‘A ’(példafájl)’ első parancssora a szkriptben”str= [(1,2),(3,4)]if[ $day == "h" ] akkor echo "h"más echo "nem mon"fiVÁLTOZÓ esetén a 0..2}-ben; akkordo echo parancs1; visszhang parancs2; visszhang parancs3; visszhang parancs4; Készmíg igaz; do if [ $ day == "h" ]; majd echo „mon”; else echo „nem mon”; Kész; fi
1. módszer: Javítsa ki manuálisan a hibákat az egyes parancssorban
A hibák kijavításának első módja a szintaktikai hiba manuális kijavítása a szkript minden parancssorában. Ebben a részben a parancssorban a váratlan token közelében előforduló szintaktikai hibák megoldásának lépéseit tárgyaljuk. Az alábbiakban ismertetjük a terminál váratlan token hibájának kijavításának folyamatát. Futtassa a fájlt a Terminál a beírásával ./example.sh parancsot, majd nyomja meg a gombot Belépkulcs.
2. Jegyezze meg a vonalak amelyeknél a váratlan token hiba szerepel az alábbi eredmény parancssoraiban.
3. Javítsa ki a hibát minden sorban az alábbiakban tárgyalt módszereket követve külön-külön és megtakarítás a fájl.
4. Fuss a módosítások után újra a fájlt, és ellenőrizze, hogy a szintaktikai hiba megoldódott-e a fájlon.
Olvassa el még:A Linux Bash Shell telepítése Windows 10 rendszeren
I. lépés: Olvassa el a fájl tartalmát
A parancssorban lévő szintaktikai hiba megoldásának első lépése a fájl beolvasása a terminálban. HA problémák vannak a fájllal, előfordulhat, hogy nem tudja megtekinteni a fájlt. A fájl megtekintésének szokásos gyakorlata a fájl futtatása a paranccsal ./example.sh de nem módosíthatja a fájl tartalmát. Az alábbiakban tárgyaljuk a fájl tartalmának megtekintésére és a parancssorok módosítására vonatkozó beállításokat a váratlan „(” token közelében lévő szintaktikai hiba javítása érdekében.
1. lehetőség: CAT parancson keresztül
Az első lehetőség a macska parancsot a fájl megtekintéséhez a shell szkriptben. Olvassa el a váratlan tokenhibát tartalmazó fájl tartalmát a cat paranccsal a parancs beírásával cat –v példa.sh a Terminálban.
1. megjegyzés: Az példa.sh magyarázó célokat szolgál, és be kell írnia annak a fájlnak a nevét, amelyben a váratlan token hiba található.
Jegyzet 2: A cat –v parancs az összes láthatatlan karakter megjelenítésére szolgál, amelyek valószínűleg a kocsi visszatérést vagy a szünetmentes szóközt jelentik.
2. lehetőség: VX parancson keresztül
Ha nem tudja használni a cat parancsot, próbálkozzon a vx paranccsal a fájlban lévő parancsok megtekintéséhez és módosításához az alábbi lépéssel. Írja be a sh –vx ./example.sh parancsot a terminálban a fájl megnyitásához.
3. lehetőség: Az od –a parancson keresztül
3. Ha néhány láthatatlan karakter van a parancssorban, az od –a paranccsal tekintheti meg a fájlt. Ha a fájl tartalma nem látható a kódfájlban, megpróbálhatja beolvasni a fájlt a paranccsal od –egy példa.sh a kód módosításához.
II. lépés: Távolítsa el a Windows sortöréseket
Ha Windows sortörések vannak a shell szkriptben, a konzolparancsokkal eltávolíthatja a sortöréseket, és a hiba kijavításához másolja a kódsorokat egy új fájlba.
Írja be a következő parancsot a terminálba, hogy a fájl tartalmát egy másik nevű fájlba mentse javított példa.sh a Windows sortörések eltávolításához a szkriptben.
tr –d ‘\r’javított példa.sh
III. lépés: Állítsa be az újonnan létrehozott fájl engedélyeit
Az újonnan létrehozott fájlhoz meg kell adni az engedélyt a fájl szerkesztéséhez, hogy a fájl végrehajtható legyen a shellben. Írja be a parancsot mint chmod 755 javítottexample.sh a terminálban a fájl engedélyeinek megadásához és a fájl futtatásához. Most megtekintheti a javított fájlt, kijavíthatja a formázási problémákat, valamint kijavíthatja a szintaktikai hibát a váratlan „(” token közelében a fájlban.
IV. lépés: Formázza meg a kódot a fájlban
A második lépés a kódsorok egyenkénti formázása és a parancssorok manuális módosítása a fájlban. A fájl formázásának lehetőségeit a váratlan token '(' közelében lévő szintaktikai hiba kijavítása érdekében az alábbiakban tárgyaljuk ebben a részben.
1. lehetőség: Cserélje ki az egyszeri idézeteket kettős idézetekre
Ha szimpla idézőjeleket használ a parancssorban, akkor a szintaktikai hiba kijavításához módosítania kell a parancsot úgy, hogy az idézőjeleket dupla idézőjelekre cseréli. Ban,-ben példa.sh fájlt, távolítsa el a kódsorokat, amelyek rendelkeznek ‘ és ’ vagy a egyetlen idézőjel a parancsban, és cserélje ki az idézőjeleket a dupla idézőjelek vagy a “ és ’’. Itt, a példafájlban meg kell változtatni a kódot, mint str= „A „\(példafájl)\” első parancssora a szkriptben”
Jegyzet: A dupla idézőjelek szükségesek a paraméter típusú parancsokhoz, mint pl str= "[(1,2),(3,4)]".
Olvassa el még:2022 legjobb könnyűsúlyú Linux disztribúciója
2. lehetőség: $ hozzáadása a karakterláncokhoz
Ha karakterlánc-értékeket adott a szkripthez, a szkriptben lévő szintaktikai hiba kijavításához hozzá kell adni egy $ karakterláncot a karakterláncértékekhez. Add hozzá a $ a parancssorokhoz a húr értékeket a váratlan hiba kijavításához. Itt, a példafájlban változtassa meg a parancssort mint;
str= $ 'A '\(példafájl)\' első parancssora a szkriptben'
Jegyzet: Ha használja a $ a karakterlánc értékben megkerülheti a fordított perjel escape szekvenciát, mivel a parancssorokat az ANSI C szabvány dekódolja. Más szóval, ha $ karakterláncot használ, elkerülheti a dupla idézőjelek használatát a parancssorban.
3. lehetőség: Tabulátorok konvertálása szóközökké
A parancsban a két utasítás között hagyott szóközöknek tabulátorok helyett szóközöknek kell lenniük a szkript szintaktikai hibájának kijavításához. Ha a hibát a Cygwinnél kapja, megpróbálhatja a kódokban lévő tabulátorokat szóközökké alakítani a hiba kijavításához. A parancssor az alábbiakban látható:
do echo parancs1; visszhang parancs2; visszhang parancs3; visszhang parancs4; Kész
A hiba kijavításához a fenti parancsot át kell írni az alábbiak szerint.
do echo parancs1; visszhang parancs2; visszhang parancs3; visszhang parancs4; Kész
4. lehetőség: Escape karakterek használata
Ha bash karaktert használ, fontos, hogy a bash karakter mellett egy escape karaktert is használjon a szintaktikai hiba kijavításához. Az zárójelben vagy () bash speciális karakterek a fájlban, ezért az escape karaktert vagy a fordított perjel a parancssorban a normál karakterek kihagyásához a parancs végrehajtásához. Az str= ‘A \‘(példafájl)\’ első parancssora a szkriptben” parancs nem adna hibát a terminálban, mivel az escape karakter használatos.
Olvassa el még: Hogyan kerüljünk közénk Linuxon
5. lehetőség: használjon szóközt a karakterek között
A shell script az alapértelmezett értékek alapján ismeri fel a parancsfájlban található parancsokat és utasításokat. Gondoskodnia kell a karakterek közötti szóköz megfelelő használatáról, hogy a shell azonosítani tudja a szkriptben adott parancsot. A szóköz egy karakter, amely két karakter megkülönböztetésére szolgál a parancssorban. A kódban nincs szóköz a ha és [, amely a váratlan token hibát adja meg, mint a ha[ parancsot nem azonosítja a shell. Ha a kódot erre módosítják if [ $ nap == "h" ]; akkor a hiba a shell bulletin paranccsal megoldható ha a héj azonosítja.
6. lehetőség: Parancselválasztó használata az utasításokhoz
A héjszkriptben lévő különféle parancsokat utasításokra kell szétválasztani, hogy a terminál azonosítsa az egyes parancsokat. A Linux Bash szintaktikai hibájának kijavításához parancselválasztót kell használnia. A parancs utasításait parancselválasztóval kell elválasztani, például pontosvesszővel vagy a ; vagy egy új sort a gomb megnyomásával Belép kulcs. Például a kódban lévő parancs ha [ $ nap == “h” ] akkor ként kell módosítani if [ $ nap == "h" ]; akkor a hiba kijavításához. Mivel a pontosvesszőt parancselválasztóként használják a karakterek között [ és akkor, kijavíthatja ezt a hibát.
7. lehetőség: További nyilatkozatok eltávolítása
Előfordulhat, hogy több beágyazott ciklus esetén további utasításokat adott hozzá, vagy összekeverte a kódokat. El kell távolítania a további utasításokat a parancssorokból, hogy kijavítsa a szintaktikai hibát a váratlan „(” token közelében a Linux Bash-ban. A bash hurkok mert… kész vagy és a konstrukciós konstrukciók ha… fi megfelelő szintaxisban kell lennie. A példafájl szintaxisa rossz a számára hurokban van a kifejezés akkor amelyet a ha nyilatkozat. A kód következő kódra történő módosítása kijavítja a váratlan token hibát. Az állítás akkor egy további utasítás a kódban, és a kifejezés eltávolítása javítja a hibát.
VÁLTOZÓ esetén a 0..2}-ben; do echo parancs1; visszhang parancs2; visszhang parancs3; visszhang parancs4; Kész
8. lehetőség: Győződjön meg arról, hogy a nyilatkozatok lezárásának sorrendje helyes
Ha sok beágyazott vagy feltételes szerkezeti utasítást használ a shell szkriptben, akkor gondoskodnia kell arról, hogy a hurkok a megnyitásuk sorrendjében legyenek bezárva. Használhat új sorelválasztót, hogy elkerülje a hurkokkal való ütközést. A beágyazott ciklusok és a feltételes utasítások bezárásának sorrendjének helyesnek kell lennie, és nem szabad megváltoztatni. A ciklusok a kódban míg igaz; do if [ $ day == "h" ]; majd echo „mon”; else echo „nem mon”; Kész; fi megfelelő sorrendben kell zárni. A kód alább látható módosítása javíthatja a váratlan token hibát, ahogy az utasítások lezárásának sorrendje kijavítható.
míg igaz; do if [ $ day == "h" ]; majd echo „mon”; else echo „nem mon”; fi; Kész
Olvassa el még:Mi az a parancssori tolmács?
2. módszer: Kód újraírása
Ha kimásolta a kódot és beillesztette egy új fájlba a terminálon, megpróbálhatja manuálisan átírni a kódot a hiba kijavításához. A kódban lévő hibák kijavíthatók, ha a kódot formátumhiba nélkül írta meg a shell szkriptben. Ennek az az oka, hogy a rejtett karakterek és a szövegszerkesztőben (például a Microsoft Wordben) előforduló formázási problémák okozhatták a hibát, amelyet a kód másolásához és beillesztéséhez használt.
3. módszer: Használja a Dos2unix.exe parancsot
Ha Unix operációs rendszert használ, kódokat írhat soremelés karakterrel mint \n hogy a következő sorra lépjen a fájlban. Ha azonban Windows operációs rendszert használ, akkor a következő sorra kell lépnie a kódban a kocsivissza és a soremelés vagy a \r\n a fájlban. Ha a Windows operációs rendszerben írt kódot hajtja végre a Cygwinben, előfordulhat, hogy a szintaktikai hiba a váratlan '(' token közelében).
A hiba kijavításához törölnie kell a kocsivissza karaktereket a DOS-ról Unixra parancssori eszköz szöveges fájlformátum konvertálóként. Írja be a következő parancsot mint dos2unix.exe example.sh a terminálban, és konvertálhatja a fájlt Unix formátumba.
Ajánlott:
- Telegram fiók létrehozása Androidon
- Futásidejű hiba C++ javítása Windows 10 rendszeren
- A Github-fiók végleges törlése
- A 14 legjobb grafikus kártya Linuxhoz
A cikk a javítás alapvető módszereit tárgyalja Bash szintaktikai hiba váratlan token közelében‘(’ a forgatókönyvben. Ha Linux Bash-t használ, az ebben a részben ismertetett módszerekkel javíthatja a Bash szintaktikai hibát a váratlan token közelében. Ha elolvasta a teljes cikket, és hasznosnak találta a tartalmat, kérjük, ossza meg velünk javaslatait és kérdéseit a megjegyzés rovatban.