cum să rulați un script Shell în Linux [Essentials Explained for Beginners]

există două moduri de a rula un script shell în Linux. Puteți utiliza:

bash script.sh

sau puteți executa scriptul shell astfel:

./script.sh

poate că este simplu, dar nu explică multe. Nu vă faceți griji, voi face explicațiile necesare cu exemple, astfel încât să înțelegeți de ce o anumită sintaxă este utilizată în formatul dat în timp ce rulați un script shell.

am de gând să folosească acest script shell o linie pentru a face lucrurile cât mai simplu posibil:

:~/Scripts$ cat hello.sh echo "Hello World!"

Metoda 1: rularea unui script shell trecând fișierul ca argument la shell

prima metodă implică trecerea numelui fișierului script ca argument la shell.

având în vedere că bash este shell-ul implicit, puteți rula un script ca acesta:

bash hello.sh

cunoașteți avantajul acestei abordări? Scriptul dvs. nu trebuie să aibă permisiunea de executare. Destul de la îndemână pentru sarcini rapide și simple.

rulați un script Shell Linux
rularea unui script Shell Linux

dacă nu sunteți deja familiarizați, vă sfătuiesc să citiți ghidul meu detaliat privind permisiunea fișierului în Linux.

rețineți că trebuie să fie un script shell pe care îl transmiteți ca argument. Un script shell este compus din comenzi. Dacă utilizați un fișier text normal, acesta se va plânge de comenzi incorecte.

rularea fișierului Text ca Script în Linux
rularea unui fișier Text ca Script

în această abordare, ați specificat în mod explicit că doriți să utilizați bash ca interpret pentru script.

Shell este doar un program, iar bash este o implementare a acestuia. Există și alte astfel de programe de cochilii, cum ar fi ksh, zsh etc. Dacă aveți alte cochilii instalate, puteți folosi și asta în loc de bash.

de exemplu, am instalat zsh și l-am folosit pentru a rula același script:

executa script Shell cu Zsh
executa script Shell cu Zsh

citire recomandată:

Metoda 2: executați scriptul shell specificând calea sa

cealaltă metodă pentru a rula un script shell este prin furnizarea căii sale. Dar pentru ca acest lucru să fie posibil, fișierul dvs. trebuie să fie executabil. În caz contrar, veți avea eroarea „permission denied” atunci când încercați să executați scriptul.

deci, mai întâi trebuie să vă asigurați că scriptul dvs. are permisiunea de executare. Puteți utiliza comanda chmod pentru a vă oferi această permisiune astfel:

chmod u+x script.sh

odată ce scriptul dvs. este executabil, tot ce trebuie să faceți este să tastați numele fișierului împreună cu calea sa absolută sau relativă. Cel mai adesea vă aflați în același director, așa că îl folosiți așa:

./script.sh

dacă nu vă aflați în același director ca scriptul dvs., îl puteți specifica calea absolută sau relativă către script:

rularea scriptului Shell în alt director
rularea scriptului Shell în alt director

asta ./ înainte de script-ul este important (atunci când vă aflați în același director ca script-ul)

executarea scripturilor Shell Linux

de ce nu puteți utiliza numele scriptului atunci când vă aflați în același director? Linux caută executabile pentru a rula în câteva directoare selectate care sunt specificate în variabila PATH.

Iată valoarea variabilei PATH pentru sistemul meu:

:~$ echo $PATH/home/abhishek/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

aceasta înseamnă că orice fișier cu permisiuni de executare într-unul din următoarele directoare poate fi executat de oriunde din sistem:

  • /acasă / abhishek/.local/bin
  • /usr/local/sbin
  • /usr/local/bin
  • /usr/sbin
  • /usr/bin
  • /sbin
  • /bin
  • /usr/games
  • /usr/local/games
  • /snap/bin

binare sau fișiere executabile pentru comenzi Linux, cum ar fi LS, cat etc sunt situate într-unul din aceste directoare. Acesta este motivul pentru care puteți rula aceste comenzi de oriunde din sistemul dvs. doar folosind numele lor. Vedeți, comanda ls este localizată în directorul / usr / bin.

localizarea comenzii Linux

când specificați scriptul fără calea absolută sau relativă, acesta nu îl poate găsi în directoarele menționate în variabila PATH.

de ce majoritatea scripturilor shell conțin #! / bin / bash la începutul scripturilor shell?

amintiți-vă cum am menționat că shell este doar un program și există diferite implementări ale Shell-urilor.

când utilizați #! / bin / bash, specificați că scriptul este de a rula cu bash ca interpret. Dacă nu faceți asta și rulați un script./ scenariu.mod sh, acesta este, de obicei, a alerga cu orice coajă se execută.

contează? Ar putea. Vezi, cea mai mare parte a sintaxei shell este comună în toate tipurile de shell, dar unele ar putea diferi.

de exemplu, comportamentul matricei este diferit în shell-urile bash și zsh. În zsh, indicele matricei începe de la 1 în loc de 0.

Bash Vs Zsh
Bash Vs Zsh

Folosind #! / bin / bash indică faptul că scriptul este bash shell script și ar trebui să fie rulat cu bash ca interpret, indiferent de shell-ul care este utilizat pe sistem. Dacă utilizați sintaxa specifică zsh, puteți indica faptul că este script zsh prin adăugarea #! / bin / zsh ca prima linie a scenariului.

spațiul dintre #! / bin / bash nu contează. De asemenea, puteți utiliza #!/ bin / bash.

a fost util?

sper că acest articol adăugat la cunoștințele Linux. Dacă mai aveți întrebări sau sugestii, vă rugăm să lăsați un comentariu.

utilizatorii experți pot încă nitpick acest articol despre lucruri am pierdut. Dar problema cu astfel de subiecte pentru începători este că nu este ușor să găsești echilibrul corect al informațiilor și să eviți să ai prea multe sau prea puține detalii.

dacă sunteți interesat în procesul de învățare bash script, avem o întreagă serie Bash incepator pe site-ul nostru axat sysadmin Linux manual. Dacă doriți, puteți achiziționa, de asemenea, cartea electronică cu exerciții suplimentare pentru a sprijini manualul Linux.

îți place ce ai citit? Vă rugăm să-l împărtășească cu alții.

50 acțiuni
  • Facebook0
  • Twitter49
  • LinkedIn1
  • Reddit0

Leave a Reply

Lasă un răspuns

Adresa ta de email nu va fi publicată.