Remediați eroarea de sintaxă Bash aproape de simbolul neașteptat
Miscellanea / / May 30, 2022
Codarea în terminalul Linux Bash a devenit o practică predominantă în sectorul de codificare. Inginerii software și studenții care învață limbajul de codificare întâmpină diverse erori. Dacă ați văzut în mod repetat erori precum eroare de sintaxă lângă simbolul neașteptat „(” sau eroare de sintaxă Bash aproape de un simbol neașteptat, puteți încerca să vă bazați pe metodele descrise în articol și să deveniți un expert codificator. Citiți metodele descrise în articol în ordinea descrisă și remediați erorile din liniile de comandă din fișierul dvs.
Cuprins
- Cum să remediați eroarea de sintaxă Bash aproape de simbolul neașteptat
- Metoda 1: Remediați manual erorile din fiecare linie de comandă
- Pasul I: Citiți conținutul fișierului
- Pasul II: Eliminați întreruperile de linie Windows
- Pasul III: Setați permisiunile pentru fișierul nou creat
- Pasul IV: Formatați codul în fișier
- Metoda 2: Rescrie codul
- Metoda 3: Utilizați comanda Dos2unix.exe
Cum să remediați eroarea de sintaxă Bash aproape de simbolul neașteptat
Linux Bash este un interpret de linie de comandă pentru sistemul bazat pe Linux și este un înlocuitor pentru Bourne Shell sau sh. Fișierele sunt denumite folosind formatul .sh în Linux Bash scripting. Dacă există probleme de formatare în codul din scriptul shell, este posibil să vă confruntați cu o eroare de sintaxă. Dacă eroarea este aproape de ( caracterul, shell-ul vă va solicita eroarea din linie și va afișa eroarea în linia corespunzătoare. Deoarece Linux Bash este un interpret, linia cu eroarea vă va fi returnată în Terminal și va opri scanarea restului comenzilor din script. Prin urmare, trebuie să remediați eroarea din linia de comandă specială și să treceți la următoarea pentru a remedia eroarea neașteptată a simbolului din scriptul shell. Cauzele erorii de sintaxă aproape de simbolul neașteptat din Linux Bash sunt enumerate mai jos în această secțiune, după cum urmează:
- Codarea cu secvențe de evacuare- Dacă ați scris codurile în scripting Bash, secvențele de escape sau ghilimele din script pot cauza erori. Secvențele de evacuare și ghilimele trebuie scrise în formatul corect pentru a remedia eroarea.
- Sintaxă incorectă în fișierul de codare - Sintaxa din cod poate da o eroare de sintaxă dacă comanda este scrisă într-o sintaxă greșită, cum ar fi schimbarea ordinii buclelor.
- Utilizarea greșită a comenzii- Dacă nu utilizați corect comanda, cum ar fi atribuirea incorectă a valorii, este posibil să aveți o eroare de sintaxă.
- Sistem de operare incompatibil în sisteme- Dacă shell-ul pentru scriptul de codare nu este compatibil între sistemele Unix și DOS, este posibil să aveți o eroare neașteptată.
- Probleme în scriptul bash shell- Problemele care rulează în scriptul bash shell pe fișierul copiat dintr-un alt sistem pot genera eroarea neașteptată a simbolului.
Luați în considerare un fișier numit exemplu.sh creat în scriptul Linux Bash cu următoarele linii de comandă în scopuri explicative. Fișierul exemplu are posibilități pentru erori de sintaxă și include toate comenzile posibile care pot fi utilizate în scriptul shell.
str= „Prima linie de comandă a „(exemplu de fișier)” în script”str= [(1,2),(3,4)]dacă[ $zi == „lună” ] atunci ecou „lună”altfel ecou „no mon”fipentru VARIABIL în {0..2}; apoiface echo command1; comanda eco2; comanda echo3; comanda eco4; Terminatîn timp ce adevărat; face if [ $ zi == „lună” ]; apoi ecou „mon”; else ecou „nu mon”; Terminat; fi
Metoda 1: Remediați manual erorile din fiecare linie de comandă
Prima metodă de a remedia erorile este să remediați manual eroarea de sintaxă în fiecare linie de comandă din script. Pașii pentru a rezolva erorile de sintaxă în apropierea simbolului neașteptat din liniile de comandă sunt discutați în această secțiune. Procesul de remediere a erorii neașteptate de simbol în terminal este descris mai jos. Rulați fișierul în Terminal prin tastarea ./exemplu.sh comandă și apăsând tasta introducecheie.
2. Rețineți că linii care au eroarea neașteptată a simbolului în liniile de comandă din rezultatul de mai jos.
3. Remediați eroarea în fiecare rând urmând metodele discutate mai jos individual şi economisire fișierul.
4. Alerga fișierul din nou după modificări și verificați dacă eroarea de sintaxă este rezolvată pe fișier.
Citește și:Cum se instalează Linux Bash Shell pe Windows 10
Pasul I: Citiți conținutul fișierului
Primul pas pentru a rezolva eroarea de sintaxă din liniile de comandă este să citiți fișierul în Terminal. DACĂ există probleme cu fișierul, este posibil să nu puteți vedea fișierul. Practica obișnuită de vizualizare a fișierului este să rulați fișierul folosind comanda ./exemplu.sh dar nu puteți modifica conținutul fișierului. Opțiunile pentru vizualizarea conținutului fișierului și modificarea liniilor de comandă pentru a remedia eroarea de sintaxă lângă simbolul neașteptat „(” sunt discutate mai jos.
Opțiunea 1: Prin comanda CAT
Prima opțiune este să utilizați pisică comandă pentru a vizualiza fișierul în scriptul shell. Citiți conținutul fișierului cu eroarea neașteptată a simbolului folosind comanda cat, tastând comanda pisica –v exemplu.sh în Terminal.
Nota 1: The exemplu.sh este folosit în scopuri explicative și trebuie să tastați numele fișierului care are eroarea neașteptată a simbolului.
Nota 2: Comanda cat –v este folosită pentru a afișa toate caracterele invizibile care sunt susceptibile de a reprezenta întoarcerea căruciorului sau spațiul fără întrerupere.
Opțiunea 2: Prin comanda VX
Dacă nu puteți utiliza comanda cat, puteți încerca să utilizați comanda vx pentru a vizualiza și modifica comenzile din fișier, urmând pasul de mai jos. Tastați sh –vx ./exemplu.sh comanda din Terminal pentru a deschide fișierul.
Opțiunea 3: Prin comanda od –a
3. Dacă există câteva caractere invizibile în liniile de comandă, puteți utiliza comanda od –a pentru a vizualiza fișierul. Dacă conținutul fișierului nu este vizibil în fișierul de cod, puteți încerca să citiți fișierul folosind comanda od –un exemplu.sh pentru a modifica codul.
Pasul II: Eliminați întreruperile de linie Windows
Dacă există întreruperi de linie Windows în scriptul shell, puteți utiliza comenzile consolei pentru a elimina întreruperile de linie și pentru a copia liniile de cod într-un fișier nou pentru a remedia eroarea.
Introduceți următoarea comandă în Terminal pentru a salva conținutul fișierului într-un alt fișier numit exemplu corectat.sh pentru a elimina întreruperile de linie Windows din script.
tr –d ‘\r’exemplu corectat.sh
Pasul III: Setați permisiunile pentru fișierul nou creat
Trebuie să setați permisiunea pentru fișierul nou creat pentru a edita fișierul, astfel încât fișierul să poată fi executat în shell. Tastați comanda ca chmod 755 corectedexample.sh în Terminal pentru a furniza permisiunile pentru fișier și pentru a rula fișierul. Acum puteți vizualiza fișierul corectat și puteți remedia problemele de formatare și puteți remedia eroarea de sintaxă lângă simbolul neașteptat „(” din fișier.
Pasul IV: Formatați codul în fișier
Al doilea pas este formatarea liniilor de cod individual și modificarea manuală a liniilor de comandă pe fișier. Opțiunile de formatare a fișierului pentru a remedia eroarea de sintaxă lângă simbolul neașteptat „(” sunt discutate mai jos în această secțiune.
Opțiunea 1: Înlocuiți ghilimele simple cu ghilimele duble
Dacă utilizați ghilimele simple în liniile de comandă, trebuie să modificați comanda înlocuind ghilimelele simple cu ghilimele duble pentru a remedia eroarea de sintaxă. În exemplu.sh fișier, eliminați liniile de cod care au ‘ și ’ sau ghilimele simple în comandă și înlocuiți ghilimelele simple cu ghilimele duble sau “ și ’’. Aici, în fișierul exemplu, trebuie să schimbați codul ca str= „Prima linie de comandă a „\(fișier exemplu)\” în script”
Notă: Ghilimelele duble sunt necesare pentru comenzile de tip parametru precum str= „[(1,2),(3,4)]”.
Citește și:Cele mai bune 20 de distribuții Linux ușoare din 2022
Opțiunea 2: Adăugați $ la liniile de șir
Dacă ați adăugat valori de șir la script, trebuie să adăugați un $ la valorile de șir pentru a remedia eroarea de sintaxă din script. Adaugă $ pentru liniile de comandă cu şir valori pentru a remedia eroarea neașteptată. Aici, în fișierul exemplu, schimbați linia de comandă ca;
str= $ „Prima linie de comandă a „\(fișier exemplu)\” în script”
Notă: Dacă utilizați $ în valoarea șirului, puteți ocoli secvența de evadare backslash, deoarece liniile de comandă sunt decodificate de standardul ANSI C. Cu alte cuvinte, folosind un $ pentru valoarea șirului, puteți evita folosirea ghilimelelor duble în loc de ghilimele simple din liniile de comandă.
Opțiunea 3: Convertiți filele în spații
Spațiile pe care le-ați lăsat între două instrucțiuni din comandă trebuie să fie spații în loc de tab-uri pentru a remedia eroarea de sintaxă din script. Dacă primiți eroarea pe Cygwin, puteți încerca să convertiți filele din coduri în spații pentru a remedia eroarea. Linia de comandă este dată mai jos ca;
face echo command1; comanda eco2; comanda echo3; comanda eco4; Terminat
Comanda de mai sus ar trebui rescrisă așa cum se arată mai jos pentru a remedia eroarea.
face echo command1; comanda eco2; comanda echo3; comanda eco4; Terminat
Opțiunea 4: Utilizați caractere de evacuare
Dacă utilizați un caracter bash, este important să utilizați un caracter de escape împreună cu caracterul bash pentru a remedia eroarea de sintaxă. The parantezele sau () sunt caractere speciale bash în fișier, prin urmare, ar trebui să utilizați caracterul de escape sau backslash în linia de comandă pentru a scăpa de caracterele normale pentru a executa comanda. The str= „Prima linie de comandă a „(fișier exemplu)” în script” comanda nu ar da o eroare în terminal, deoarece sunt folosite caracterele de evacuare.
Citește și: Cum să ajungeți printre noi pe Linux
Opțiunea 5: Folosiți spațiul dintre caractere
Scriptul shell recunoaște comenzile și instrucțiunile din script după valorile implicite. Trebuie să vă asigurați utilizarea corectă a spațiului dintre caractere, astfel încât shell-ul să poată identifica comanda dată în script. Spațiul este un caracter care este folosit pentru a diferenția două caractere în linia de comandă. În cod, nu există spațiu între dacă și [, care dă eroarea neașteptată a simbolului ca dacă[ comanda nu este identificată de shell. Dacă codul este schimbat în dacă [ $ zi == „lună” ]; atunci eroarea poate fi rezolvată ca comandă shell bulletin dacă este identificat de coajă.
Opțiunea 6: Utilizați separatorul de comenzi pentru instrucțiuni
Diferitele comenzi din scriptul shell trebuie să fie separate în instrucțiuni pentru ca Terminalul să identifice comenzi individuale. Trebuie să utilizați un separator de comenzi pentru a remedia eroarea de sintaxă în Linux Bash. Declarațiile din comandă trebuie să fie separate printr-un separator de comandă, cum ar fi punct și virgulă sau a ; sau o nouă linie apăsând butonul introduce cheie. De exemplu, comanda din cod dacă [ $ zi == „lună” ] atunci trebuie modificat ca dacă [ $ zi == „lună” ]; apoi pentru a remedia eroarea. Deoarece punctul și virgulă este folosit ca separator de comandă între caractere [ și apoi, puteți remedia această eroare.
Opțiunea 7: Eliminați declarațiile suplimentare
Uneori, este posibil să fi adăugat instrucțiuni suplimentare sau să fi amestecat codurile în cazul mai multor bucle imbricate. Trebuie să eliminați instrucțiunile suplimentare de pe liniile de comandă pentru a remedia eroarea de sintaxă lângă simbolul neașteptat „(” în Linux Bash. Buclele bash istovit sau și construcțiile de construcție dacă... fi trebuie să fie în sintaxa corectă. Fișierul exemplu are o sintaxă greșită în fișierul pentru bucla are termenul apoi care este folosit în dacă afirmație. Modificarea codului ca următorul cod va remedia eroarea neașteptată a simbolului. Declaratia apoi este o declarație suplimentară în cod și eliminarea termenului va remedia eroarea.
pentru VARIABIL în {0..2}; face echo command1; comanda eco2; comanda echo3; comanda eco4; Terminat
Opțiunea 8: Asigurați-vă că ordinea de închidere a extraselor este corectă
Dacă utilizați multe instrucțiuni de construcție imbricate sau condiționate în scriptul shell, trebuie să vă asigurați că buclele sunt închise în ordinea în care sunt deschise. Puteți folosi un nou separator de linii pentru a evita conflictele cu buclele. Ordinea de închidere a buclelor imbricate și a instrucțiunilor condiționale ar trebui să fie corectă și nu trebuie modificată. Buclele din cod în timp ce adevărat; face if [ $ zi == „lună” ]; apoi ecou „mon”; else ecou „nu mon”; Terminat; fi trebuie închis în ordinea corectă. Modificarea codului, așa cum se arată mai jos, poate remedia eroarea neașteptată a simbolului, deoarece ordinea de închidere a declarațiilor este corectată.
în timp ce adevărat; face if [ $ zi == „lună” ]; apoi ecou „mon”; else ecou „nu mon”; fi; Terminat
Citește și:Ce este un interpret de linie de comandă?
Metoda 2: Rescrie codul
Dacă ați copiat codul și l-ați lipit într-un fișier nou pe terminal, puteți încerca să rescrieți codul manual pentru a remedia eroarea. Erorile din cod pot fi remediate dacă ați scris codul fără erori de format în scriptul shell. Acest lucru se datorează faptului că caracterele ascunse și problemele de formatare din editorul de text, cum ar fi Microsoft Word, este posibil să fi folosit pentru a copia și a lipi codul, poate să fi dat eroarea.
Metoda 3: Utilizați comanda Dos2unix.exe
Dacă utilizați un sistem de operare Unix, puteți scrie coduri cu caracterul line feed ca \n pentru a trece la următoarea linie din fișier. Cu toate acestea, dacă utilizați un sistem de operare Windows, trebuie să treceți la următoarea linie din cod utilizând returul de transport și avansul de linie sau \r\n în dosar. Dacă executați codul scris în sistemul de operare Windows în Cygwin, este posibil să obțineți eroarea de sintaxă lângă simbolul neașteptat „(”.
Pentru a remedia eroarea, trebuie să ștergeți caracterele de returnare a carului folosind DOS la Unix instrument de linie de comandă ca un convertor de format de fișier text. Tastați următoarea comandă ca dos2unix.exe exemplu.sh în Terminal și puteți converti fișierul în format Unix.
Recomandat:
- Cum se creează un cont Telegram pe Android
- Remediați eroarea de rulare C++ pe Windows 10
- Cum să ștergeți permanent contul Github
- Top 14 cele mai bune plăci grafice pentru Linux
Articolul a discutat despre metodele de bază de remediere Eroare de sintaxă Bash lângă un simbol neașteptat‘(’ în scenariu. Dacă utilizați un Linux Bash, puteți utiliza metodele explicate în această secțiune pentru a remedia eroarea de sintaxă Bash în apropierea simbolului neașteptat. Dacă ați citit întregul articol și ați găsit conținutul util, vă rugăm să ne transmiteți sugestiile și întrebările dvs. în secțiunea de comentarii.