Acasă
» MAC OS X
»
Cum se execută un script Shell (.sh) pe macOS
Cum se execută un script Shell (.sh) pe macOS
Pentru a rula un script shell pe macOS , deschideți Terminalul, accesați folderul care conține .shfișierul și rulați-l cu interpretorul său. De exemplu, bash hello.shrulează un script Bash fără a-i modifica permisiunile. Dacă doriți să îl lansați ca o comandă, faceți-l executabil cu chmod +x hello.sh, apoi rulați ./hello.sh. Aceste metode funcționează pe versiunile actuale de macOS.
Verificați scriptul înainte de a-l rula
Un script shell este un fișier text simplu care conține comenzi. Aceste comenzi se execută cu permisiunile contului dvs. de utilizator, astfel încât un script poate edita sau șterge fișiere, instala software sau trimite date printr-o rețea. Citiți un script primit înainte de a-l rula, mai ales dacă solicită o parolă de administrator sau utilizează [numele sudofișierului]. Rulați scripturi numai din surse în care aveți încredere; modificarea permisiunilor unui fișier nu face conținutul acestuia sigur.
Apple descrie scripturile shell ca fișiere text care conțin comenzi UNIX și explică modul în care un shebang selectează shell-ul care rulează scriptul. Consultați ghidul Apple Terminal despre scripturile shell .
Rulați un script .sh cu Bash
Aceasta este cea mai simplă metodă de a rula un script Bash. Nu este nevoie să adăugați mai întâi permisiunea de execuție.
Creați sau localizați scriptul. Un script shell poate fi scris în orice editor de text simplu. Pentru un test rapid, deschideți TextEdit, alegeți Format > Creare text simplu și introduceți aceste două linii:
#!/bin/bash
echo "Hello from macOS"
Salvați fișierul ca hello.sh. În caseta de dialog de salvare, verificați dacă numele se termină în .shși că TextEdit nu a adăugat .txt. Prima linie este shebang-ul: identifică Bash ca interpretor atunci când scriptul este lansat direct. A doua linie afișează un mesaj scurt.
Fișierul exemplu hello.sh conține un shebang urmat de o comandă care afișează text.
Deschide Terminal și accesează folderul fișierului. Apasă Command-Space, tastează Terminal și apasă Enter. Dacă ai salvat fișierul în Descărcări, introdu:
cd ~/Downloads
Apăsați Enter după fiecare comandă. Puteți tasta lspentru a lista fișierele și a confirma că hello.shexistă. Schimbați Downloadsla folderul pe care l-ați utilizat efectiv. Dacă un nume de folder sau fișier conține spații, puneți calea între ghilimele, cum ar fi cd "$HOME/My Scripts".
Folosește comanda cd pentru a deschide folderul care conține scriptul, apoi verifică-i numele cu comanda ls.
Rulați scriptul cu Bash. Introduceți numele scriptului după bash:
bash hello.sh
Terminalul ar trebui să afișeze Hello from macOS. Dacă scriptul folosește sintaxa Zsh în loc de Bash, executați comanda zsh hello.sh. Shell-ul care se deschide interactiv în Terminal este de obicei Zsh, dar asta nu înseamnă că fiecare script ar trebui rulat cu Zsh; utilizați interpretorul pentru care a fost scris scriptul. „Shebang”-ul unui script indică adesea interpretorul respectiv.
Acordați permisiunea de execuție. În aceeași fereastră și folder de Terminal, executați:
chmod +x hello.sh
Aceasta adaugă permisiune de execuție acestui fișier. Este o modificare unică, cu excepția cazului în care permisiunile sunt resetate ulterior. Evitați utilizarea setărilor de permisiuni mai largi decât este necesar; chmod +xeste suficientă pentru un script personal pe care îl dețineți.
Comanda chmod +x marchează fișierul hello.sh ca executabil.
Lansați-l din folderul curent. Tastați:
./hello.sh
Comanda ./spune shell-ului să ruleze fișierul în directorul curent. Fără aceasta, shell-ul caută, în general, folderele listate în PATHdirectorul curent, în loc de folderul curent. Dacă vă aflați în altă parte, fie utilizați cdpentru a reveni la folderul scriptului, fie introduceți calea completă, de exemplu ~/Downloads/hello.sh.
Rularea comenzii ./hello.sh pornește scriptul executabil și afișează rezultatul acestuia.
Erori frecvente și remedieri
„Permisiune refuzată” după utilizare ./hello.sh: confirmați numele fișierului, apoi executați chmod +x hello.sh. Sau utilizați bash hello.shdacă este un script Bash și nu aveți nevoie de execuție directă.
„Nu există un astfel de fișier sau director”: confirmați folderul cu pwd, listați conținutul acestuia cu lsși verificați ortografia și utilizarea majusculelor. Asigurați-vă că fișierul nu este de fapt numit hello.sh.txt.
„Comandă negăsită” în script: scriptul se poate baza pe un utilitar care lipsește sau nu este activ PATH. Verificați documentația scriptului înainte de a instala orice.
„Interpretor prost” sau o eroare care menționează ^M: prima linie poate indica un interpretor indisponibil sau fișierul poate folosi terminații de linie în stil Windows. Verificați shebang-ul și salvați fișierul cu terminații de linie Unix (LF).
Ce metodă ar trebui să folosești?
Folosește-l bash hello.shpentru o rulare rapidă atunci când știi că este un script Bash. Folosește chmod +x hello.shurmat de ./hello.shcând vrei să-l lansezi direct și să lași scriptul să aleagă interpretorul. Nicio metodă nu instalează dependențele lipsă, nu corectează comenzile incompatibile și nu verifică dacă scriptul este de încredere.