Parandage Bashi süntaksiviga ootamatu märgi lähedal
Miscellanea / / May 30, 2022
Kodeerimine Linux Bash Terminalis on muutunud kodeerimissektoris valdavaks tavaks. Tarkvarainsenerid ja kodeerimiskeelt õppivad õpilased puutuvad kokku erinevate vigadega. Kui olete korduvalt näinud selliseid vigu nagu süntaksiviga ootamatu märgi '(' lähedal või Bashi süntaksiviga ootamatu märgi lähedal, võite proovida toetuda artiklis kirjeldatud meetoditele ja saada asjatundjaks kodeerija. Lugege artiklis kirjeldatud meetodeid kirjeldatud järjekorras ja parandage faili käsuridade vead.
Sisu
- Kuidas parandada Bashi süntaksi viga ootamatu märgi lähedal
- 1. meetod: parandage käsitsi vead igal käsureal
- I samm: lugege faili sisu
- II samm: eemaldage Windowsi reavahed
- III samm: määrake õigused vastloodud failile
- IV samm: vormindage failis olev kood
- 2. meetod: kirjutage kood ümber
- 3. meetod: kasutage käsku Dos2unix.exe
Kuidas parandada Bashi süntaksi viga ootamatu märgi lähedal
Linux Bash on Linuxi-põhise süsteemi käsurea tõlk ja asendab Bourne Shelli või sh. Failidele antakse Linuxis nimed .sh-vormingus Bash
skriptimine. Kui kestaskripti koodis on vormindamisprobleeme, võib tekkida süntaksiviga. Kui viga on lähedal ( märki, kuvab kest rea vea ja kuvab vea vastaval real. Kuna Linux Bash on tõlk, tagastatakse veaga rida teile terminalis ja see lõpetab skripti ülejäänud käskude kontrollimise. Seetõttu peate parandama vea konkreetsel käsureal ja jätkama järgmisega, et parandada shelliskripti ootamatu märgivea. Linux Bashis ootamatu süntaksitõrke põhjused on selles jaotises loetletud allpool:- Kodeerimine põgenemisjärjestustega- Kui olete koodid kirjutanud Bashi skriptides, võivad skriptis olevad paojärjed või jutumärgid põhjustada vigu. Vea parandamiseks tuleb paojärjed ja jutumärgid kirjutada õiges vormingus.
- Vale süntaks kodeerimisfailis- Koodi süntaks võib põhjustada süntaksivea, kui käsk on kirjutatud vale süntaksiga, näiteks tsüklite järjekorra muutmisel.
- käsu vale kasutamine - Kui te ei kasuta käsku õigesti (nt vale väärtuse määramine), võib teil olla süntaksiviga.
- Süsteemides ühildumatu OS- Kui kodeerimisskripti kest ei ühildu Unixi ja DOS-i süsteemide vahel, võib ilmneda ootamatu tõrge.
- Probleemid bash-shelli skriptis- Teisest süsteemist kopeeritud faili bash-shelli skriptis töötavad probleemid võivad põhjustada ootamatu märgivea.
Mõelge failile nimega näide.sh loodud Linux Bashi skriptimisel järgmiste käsuridadega. Näidisfailis on süntaksivigade võimalused ja see sisaldab kõiki võimalikke käske, mida shelliskriptis kasutada saab.
str= 'Skripti '(näidisfail)' esimene käsurida'str= [(1,2),(3,4)]if[ $day == “esmaspäev” ] siis kaja "mon"muidu kaja "ei mon"fiVARIABLE jaoks {0..2}; siistee kaja käsk1; kaja käsk2; kaja käsk3; kaja käsk4; tehtudsamas tõsi; do if [ $ day == "es" ]; siis kaja "mon"; else echo “mitte mon”; tehtud; fi
1. meetod: parandage käsitsi vead igal käsureal
Esimene meetod vigade parandamiseks on süntaksivea käsitsi parandamine skripti igal käsureal. Selles jaotises käsitletakse käsuridade ootamatute süntaksivigade lahendamise samme. Allpool kirjeldatakse terminali ootamatu märgivea parandamise protsessi. Käivitage fail rakenduses Terminal tippides ./example.sh käsk ja vajutades nuppu Sisenemavõti.
2. Pange tähele read millel on alloleva tulemuse käsuridadel ootamatu märgiviga.
3. Parandage viga igal real, järgides allpool käsitletud meetodeid eraldi ja säästmine faili.
4. Jookse pärast muudatusi faili uuesti ja kontrollige, kas süntaksiviga on failis lahendatud.
Loe ka:Kuidas installida Linux Bash Shell opsüsteemi Windows 10
I samm: lugege faili sisu
Esimene samm käsuridade süntaksivea lahendamiseks on faili lugemine terminalis. KUI failiga on probleeme, ei pruugi te saada faili vaadata. Tavaline faili vaatamise tava on faili käivitamine käsuga ./example.sh kuid te ei saa faili sisu muuta. Allpool käsitletakse valikuid faili sisu vaatamiseks ja käsuridade muutmiseks, et parandada süntaksitõrke ootamatu märgi '(' lähedal.
1. valik: CAT-käsu kaudu
Esimene võimalus on kasutada kass käsk faili kuvamiseks shelliskriptis. Lugege ootamatu märgiveaga faili sisu cat-käsuga, tippides käsu kass –v näide.sh terminalis.
Märkus 1: The näide.sh kasutatakse selgitavatel eesmärkidel ja peate tippima faili nime, milles ilmnes ootamatu märgiviga.
Märkus 2: Käsku cat –v kasutatakse kõigi nähtamatute märkide kuvamiseks, mis tõenäoliselt tähistavad käru tagasitõmbamist või katkematut tühikut.
Valik 2: VX käsu kaudu
Kui te ei saa kasutada käsku cat, võite proovida failis olevate käskude vaatamiseks ja muutmiseks kasutada käsku vx, järgides alltoodud juhiseid. Sisestage sh –vx ./example.sh faili avamiseks terminalis.
Valik 3: käsu od –a kaudu
3. Kui käsuridadel on mõned nähtamatud märgid, saate faili vaatamiseks kasutada käsku od –a. Kui faili sisu pole koodifailis nähtav, võite proovida faili lugeda käsuga od – näide.sh koodi muutmiseks.
II samm: eemaldage Windowsi reavahed
Kui kestaskriptis on Windowsi reavahetusi, saate konsoolikäskude abil reavahed eemaldada ja vea parandamiseks koodiread uude faili kopeerida.
Faili sisu salvestamiseks teise nimega faili sisestage terminali järgmine käsk parandatudexample.sh Windowsi reavahede eemaldamiseks skriptist.
tr –d ‘\r’parandatudexample.sh
III samm: määrake õigused vastloodud failile
Peate määrama vastloodud failile loa faili redigeerimiseks, et faili saaks kestas käivitada. Tippige käsk as chmod 755 parandatudexample.sh terminalis, et anda failile õigused ja käivitada fail. Nüüd saate vaadata parandatud faili ja parandada vormindamisprobleeme ning parandada failis ootamatu süntaksitõrke '('.
IV samm: vormindage failis olev kood
Teine samm on koodiridade eraldi vormindamine ja käsuridade käsitsi muutmine failis. Faili vormindamise võimalusi, et parandada süntaksitõrke ootamatu märgi '(' lähedal, käsitletakse selles jaotises allpool.
1. võimalus: asendage üksikud jutumärgid topelttsitaatidega
Kui kasutate käsuridadel üksikuid jutumärke, peate süntaksivea parandamiseks käsku muutma, asendades ühe jutumärgi topeltjutumärkidega. Aastal näide.sh faili, eemaldage koodiread, millel on ‘ ja ’ või üksikud jutumärgid käsus ja asendage üksikud jutumärgid topeltjutumärgid või “ ja ’’. Siin, näidisfailis, peate muutma koodi as str= "\(näidisfaili)\" esimene käsurida skriptis"
Märge: Topeltjutumärgid on vajalikud parameetritüübi käskude jaoks, näiteks str= "[(1,2),(3,4)]".
Loe ka:2022. aasta 20 parimat kerget Linuxi distributsiooni
Valik 2: lisage stringijoontele $
Kui olete skriptile stringiväärtusi lisanud, peate skripti süntaksivea parandamiseks lisama stringiväärtustele $. Lisage $ käsuridade jaoks koos string väärtused ootamatu vea parandamiseks. Siin näidisfailis muuda käsurida as;
str= $ 'Skripti '\(näidisfail)\' esimene käsurida'
Märge: Kui kasutate $ stringi väärtuses saate kaldkriipsu paojärjestusest mööda minna, kuna käsuread dekodeeritakse ANSI C standardiga. Teisisõnu, kui kasutate stringi väärtuseks $, saate vältida topelt-jutumärkide kasutamist käsuridadel üksikute jutumärkide asemel.
Valik 3: teisendage vahekaardid tühikuteks
Skripti süntaksivea parandamiseks peavad kahe käsu vahele jäetud tühikud olema tabeldusmärkide asemel tühikud. Kui saate Cygwini veateate, võite proovida tõrke parandamiseks teisendada koodide vahelehed tühikuteks. Käsurea on toodud allpool kui;
tee kaja käsk1; kaja käsk2; kaja käsk3; kaja käsk4; tehtud
Ülaltoodud käsk tuleks tõrke parandamiseks ümber kirjutada, nagu allpool näidatud.
tee kaja käsk1; kaja käsk2; kaja käsk3; kaja käsk4; tehtud
4. valik: kasutage paomärke
Kui kasutate bash-märki, on süntaksivea parandamiseks oluline kasutada koos bash-märgiga paomärki. The sulgudes või () on failis bash erimärgid, seega peate kasutama paomärki või kaldkriips käsureal tavaliste märkide eest põgenemiseks käsu täitmiseks. The str= 'Skripti \'(näidisfail)\' esimene käsurida' käsk ei anna terminalis viga, kuna kasutatakse paomärki.
Loe ka: Kuidas Linuxis meie sekka jõuda
Valik 5: kasutage tähemärkide vahel tühikut
Shelliskript tuvastab skriptis olevad käsud ja avaldused vaikeväärtuste järgi. Peate tagama märkidevahelise ruumi õige kasutamise, et kest saaks skriptis antud käsu tuvastada. Tühik on märk, mida kasutatakse käsureal kahe märgi eristamiseks. Koodis ei ole tühikute vahel kui ja [, mis annab ootamatu märgivea kui kui[ kest ei tuvasta käsku. Kui kood muudetakse kui [ $ päev == “esmaspäev” ]; siis saab vea lahendada shelli bülletääni käsuna kui tuvastatakse kesta järgi.
6. valik: kasutage väljavõtete jaoks käsueraldajat
Shelliskripti erinevad käsud tuleb terminali jaoks üksikute käskude tuvastamiseks jagada lauseteks. Linux Bashi süntaksivea parandamiseks peate kasutama käsu eraldajat. Käsu avaldused tuleb eraldada käsu eraldajaga, näiteks semikooloniga või a ; või uus rida, vajutades Sisenema võti. Näiteks koodis olev käsk kui [ $ päev == “esmaspäev” ] siis tuleb muuta kui kui [ $ päev == “esmaspäev” ]; siis vea parandamiseks. Kuna semikoolonit kasutatakse märkide vahel käsu eraldajana [ ja siis, saate selle vea parandada.
Valik 7: eemaldage lisaavaldused
Mõnikord olete mitme pesastatud tsükli korral lisanud täiendavaid avaldusi või seganud koode. Peate eemaldama käsuridadel olevad lisalaused, et parandada Linux Bashis ootamatu süntaksi '(' lähedal esinev süntaksiviga. Bashi silmused eest… tehtud või ja ehituslikud konstruktsioonid kui… fi peab olema õiges süntaksis. Näidisfailis on vale süntaks jaoks silmusel on termin siis mida kasutatakse kui avaldus. Koodi muutmine järgmiseks koodiks parandab ootamatu märgi vea. Avaldus siis on koodis lisalause ja termini eemaldamine parandab vea.
VARIABLE jaoks {0..2}; tee kaja käsk1; kaja käsk2; kaja käsk3; kaja käsk4; tehtud
8. valik: veenduge, et väljavõtete sulgemise järjekord on õige
Kui kasutate shelliskriptis palju pesastatud või tingimuslikke konstruktsioonilauseid, peate tagama, et tsüklid suletakse nende avamise järjekorras. Konfliktide vältimiseks silmustega saate kasutada uut reaeraldajat. Pesastatud tsüklite ja tingimuslausete sulgemise järjekord peab olema õige ja seda ei tohi muuta. Silmused koodis samas tõsi; do if [ $ day == "es" ]; siis kaja "mon"; else echo “mitte mon”; tehtud; fi tuleb sulgeda õiges järjekorras. Koodi muutmine, nagu allpool näidatud, võib parandada ootamatu märgivea, kuna avalduste sulgemise järjekord on parandatud.
samas tõsi; do if [ $ day == "es" ]; siis kaja "mon"; else echo “mitte mon”; fi; tehtud
Loe ka:Mis on käsureatõlk?
2. meetod: kirjutage kood ümber
Kui olete koodi kopeerinud ja terminalis uude faili kleepinud, võite proovida vea parandamiseks koodi käsitsi ümber kirjutada. Koodis olevaid vigu saab parandada, kui olete koodi kirjutanud ilma vorminguvigadeta shelliskriptis. Selle põhjuseks on asjaolu, et tõrke põhjuseks võivad olla peidetud märgid ja tekstiredaktori (nt Microsoft Wordi) vorminguprobleemid, mida kasutasite koodi kopeerimiseks ja kleepimiseks.
3. meetod: kasutage käsku Dos2unix.exe
Kui kasutate Unixi operatsioonisüsteemi, saate kirjutada koode reavahetuse märgiga kui \n failis järgmisele reale liikumiseks. Kui aga kasutate Windowsi operatsioonisüsteemi, peate liikuma koodis järgmisele reale, kasutades käru tagastusfunktsiooni ja reavahetust või \r\n failis. Kui käivitate Cygwinis Windows OS-is kirjutatud koodi, võite saada süntaksitõrke ootamatu märgi '('.
Vea parandamiseks peate tühjendama käru tagastusmärgid, kasutades nuppu DOS-ist Unixile käsurea tööriist tekstifailivormingu konverterina. Tippige järgmine käsk as dos2unix.exe example.sh terminalis ja saate teisendada faili Unixi vormingusse.
Soovitatav:
- Kuidas Androidis telegrammi kontot luua
- Parandage käitusaegne viga C++ opsüsteemis Windows 10
- Kuidas Githubi konto jäädavalt kustutada
- 14 parimat Linuxi graafikakaarti
Artiklis on käsitletud põhilisi parandamise meetodeid Bashi süntaksiviga ootamatu märgi lähedal‘(’ stsenaariumis. Kui kasutate Linux Bashi, võite kasutada selles jaotises kirjeldatud meetodeid, et parandada Bashi süntaksitõrke ootamatu märgi lähedal. Kui olete kogu artikli läbi lugenud ja leidnud, et selle sisu on kasulik, andke meile oma ettepanekutest ja päringutest teada kommentaaride jaotises.