Remediați eroarea de sintaxă Bash aproape de simbolul neașteptat

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 lângă simbolul neașteptat, puteți încerca să vă bazați pe metodele descrise în articol și să deveniți un codificator competent. Citiți metodele descrise în articol în ordonați descris și remediați erorile din liniile de comandă din fișierul dvs.

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 scriptul Linux Bash. 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 în 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 sintaxei erorile aproape de simbolul neașteptat din Linux Bash sunt enumerate mai jos în această secțiune, după cum urmează:

  • Codarea cu secvențe de escape – Dacă ați scris codurile în scripting Bash, secvențele de escape sau ghilimele din script pot provoca 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 comanda corect, 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 example.sh creat în scripting-ul 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= ‘First command line of ‘(example file)’ in the script’
str= [(1,2),(3,4)]
if[ $day == “mon” ] then
 echo “mon”
else
 echo “no mon”
fi
for VARIABLE in {0..2}; then
do echo command1; echo command2; echo command3; echo command4; done
while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; done; 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 tastând comanda ./example.sh și apăsând tasta Enter.

2. Observați liniile care au eroarea neașteptată a simbolului în liniile de comandă din rezultatul de mai jos.

3. Remediați eroarea din fiecare linie urmând metodele discutate mai jos individual și salvând fișierul.

4. Rulați fișierul din nou după modificări și verificați dacă eroarea de sintaxă este rezolvată pe fișier.

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 ./example.sh, dar nu puteți modifica conținutul fișierului. Opțiunile de vizualizare a conținutului fișierului și de modificare a 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 comanda cat 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 cat –v example.sh în Terminal.

Nota 1: Exemplul.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 utilizată pentru a afișa toate caracterele invizibile care sunt susceptibile de a reprezenta întoarcerea carușului 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 comanda sh –vx ./example.sh în 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 –a example.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 corectedexample.sh pentru a elimina întreruperile de linie Windows din script.

tr –d ‘r’ <example.sh> correctedexample.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 oferi 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 fișierul example.sh, eliminați liniile de cod care au „ și „ sau ghilimele simple în comandă și înlocuiți ghilimele 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, cum ar fi str= “[(1,2),(3,4)]”.

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. Adăugați $ pentru liniile de comandă cu valorile șirului pentru a remedia eroarea neașteptată. Aici, în fișierul exemplu, schimbați linia de comandă ca;

str= $ ‘First command line of ‘(example file)’ in the script’

Notă: Dacă utilizați $ în valoarea șirului, puteți ocoli secvența de escape 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;

do echo command1;       echo command2;             echo command3;             echo command4;             done

Comanda de mai sus ar trebui rescrisă așa cum se arată mai jos pentru a remedia eroarea.

do echo command1; echo command2; echo command3; echo command4; done

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ă. Parantezele sau () sunt caractere speciale bash din fișier, prin urmare, ar trebui să utilizați caracterul de evacuare sau bara oblică inversă din linia de comandă pentru a scăpa de caracterele normale pentru a executa comanda. Comanda str= „Prima linie de comandă a „(fișierul exemplu)” din script-ul nu ar da o eroare în terminal, deoarece sunt folosite caracterele de escape.

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 [, which gives the unexpected token error as the if[ command is not identified by the shell. If the code is changed to if [ $ day == “mon” ]; atunci eroarea poate fi rezolvată ca comanda buletinului shell dacă este identificată de shell.

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. Instrucțiunile din comandă trebuie să fie separate printr-un separator de comandă, cum ar fi un punct și virgulă sau un ; sau o nouă linie apăsând tasta Enter. De exemplu, comanda din cod if [ $ day == “mon” ] apoi trebuie modificat ca și cum [ $ day == “mon” ]; apoi pentru a remedia eroarea. Deoarece punctul și virgulă este folosit ca separator de comandă între caractere [ and then, you can fix this error.

Option 7: Remove Additional Statements

Sometimes, you may have added additional statements or may have mixed up the codes in case of multiple nested loops. You need to remove the additional statements on the command lines to fix the Syntax error near unexpected token ‘(’ in the Linux Bash. The bash loops for…done or and the constructional constructs if… fi needs to be in the correct syntax. The example file has the wrong syntax in the for loop has the term then which is used in the if statement. Modifying the code as the following code will fix the unexpected token error. The statement then is an additional statement in the code and removing the term will fix the error.

for VARIABLE in {0..2}; do echo command1; echo command2; echo command3; echo command4; done 

Option 8: Ensure Order of Closing of Statements is Correct

If you are using many nested or conditional construct statements in the shell script, you have to ensure that the loops are closed in the order they are opened. You can use a new line separator to avoid conflicts with the loops. The order of closing the nested loops and conditional statements should be correct and must not be altered. The loops in the code while true; do if [ $ day == “mon” ]; apoi ecou „mon”; else ecou „nu mon”; Terminat; fi trebuie să fie î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ă.

while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; fi; done

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 în editorul de text, cum ar fi Microsoft Word, este posibil să fi folosit pentru a copia și a lipi codul, ar putea 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 rn din fișier. 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 instrumentul de linie de comandă DOS în Unix ca convertor de format de fișier text. Tastați următoarea comandă ca dos2unix.exe example.sh în Terminal și puteți converti fișierul în format Unix.

***

Articolul a discutat metodele de bază pentru a remedia eroarea de sintaxă Bash lângă simbolul neașteptat „(” din script. 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 ca fiind util, vă rugăm să ne transmiteți sugestiile și întrebările dvs. în secțiunea de comentarii.

  Unde sunt stocate Google Foto și cum le găsiți?