30Jun

Cum să creați și să executați scripturile Bash Shell pe Windows 10

Odată cu sosirea cofrajului Bash Windows 10, acum puteți crea și executa scripturi de shell Bash pe Windows 10. De asemenea, puteți incorpora comenzile Bash într-un fișier batch Windows sau într-un script PowerShell.

Chiar dacă știți ce faceți, acest lucru nu este neapărat la fel de simplu cum pare. Windows și UNIX utilizează diferite caractere de la sfârșitul liniei, iar sistemul de fișiere Windows este accesibil într-o locație diferită în mediul Bash.

Cum se scrie un script Bash pe Windows 10

Când scrieți scripturile shell pe Windows, rețineți că sistemele Windows și UNIX, cum ar fi Linux, folosesc diferite caractere "de sfârșit de linie" în fișiere text din scripturile shell.

Cu alte cuvinte, aceasta înseamnă că nu puteți scrie un script de shell în Notepad. Salvați fișierul în Notepad și nu va fi interpretat corect de Bash. Cu toate acestea, puteți utiliza editori de text mai avansați - de exemplu, Notepad ++ vă permite să dați un fișier UNIX de sfârșit de linie făcând clic pe Editare & gt;Conversie EOL & gt;Formatul UNIX / OSX.

Cu toate acestea, e mai bine să scrieți doar scriptul shell în mediul Bash în sine. Mediul Bash bazat pe Ubuntu vine cu editorii de fișiere vi și nano. Editorul vi este mai puternic, dar dacă nu l-ați folosit niciodată înainte, poate doriți să începeți cu nano. Este mai ușor de utilizat dacă sunteți nou.

De exemplu, pentru a crea un script bash în nano, ați executa următoarea comandă în bash:

nano ~ / myscript.sh

Acest lucru ar deschide editorul de text Nano indicat la un fișier numit "myscript.sh" în utilizatorul dvs.contul de domiciliu al contului.(Caracterul "~" reprezintă directorul dvs. de acasă, astfel încât calea completă este /home/username/ myscript.sh.)

Porniți scriptul shell cu linia:

#!/bin/ bash

Introduceți comenzile pe care doriți să le executați, fiecare pe propria linie. Scriptul va rula fiecare comandă la rândul său. Adăugați un caracter "#" înaintea unei linii pentru al trata ca un "comentariu", ceea ce vă ajută și pe alți oameni să înțeleagă scriptul, dar care nu este rulat ca o comandă.Pentru trucuri mai avansate, consultați un ghid mai detaliat al scripturilor Bash pe Linux. Aceleași tehnici vor funcționa în Bash pe Ubuntu pe Windows.

Rețineți că nu există nicio modalitate de a rula programe Windows din mediul Bash. Ești limitat la comenzile și utilitarele terminalului Linux, la fel cum ai fi la un sistem tipic Linux.

De exemplu, să folosim doar un script de bază "hello world" ca exemplu aici:

#!/bin/ bash # setați variabila STRING STRING = "Hello World!"# tipăriți conținutul variabilei pe ecran ecou $ STRING

Dacă utilizați editorul de text Nano, puteți salva fișierul apăsând pe Ctrl + O și apoi pe Enter.Închideți editorul apăsând pe Ctrl + X.

Faceți Executivul Script și apoi executați-l

Veți dori, probabil, să faceți scriptul executabil astfel încât să îl puteți rula mai ușor. Pe Linux, asta înseamnă că trebuie să dai fișierul script permisiunea executabilă.Pentru a face acest lucru, executați următoarea comandă în terminal, indicând-o la scriptul dvs.:

chmod + x ~ / myscript.sh

Pentru a rula scriptul, puteți rula acum doar în terminal introducând calea sa. Ori de câte ori doriți să lansați scriptul în viitor, trebuie doar să deschideți shell-ul Bash și să tastați calea către script.

~ / myscript.sh

( Dacă scriptul se află în directorul curent, îl puteți rula cu. /myscript.sh)

Cum să lucrați cu fișierele Windows într-un script Bash

Pentru a accesa fișierele Windows în script,va trebui să specificați calea lor sub /mnt/ c, nu calea Windows. De exemplu, dacă doriți să specificați fișierul C: \ Users \ Bob \ Downloads \ test.txt, va trebui să specificați calea test.txt /mnt/c/Users/Bob/Downloads/.Consultați ghidul nostru pentru locațiile fișierelor în shell-ul Bash Windows 10 pentru mai multe detalii.

Cum să încorporați comenzile Bash într-un script Batch sau PowerShell

În cele din urmă, dacă aveți un fișier batch existent sau un script PowerShell pe care doriți să îl includeți în comenzi, puteți rula direct comenzile Bash folosind comanda bash -c.

De exemplu, pentru a rula o comandă Linux într-o fereastră Command Prompt sau PowerShell, puteți rula următoarea comandă:

bash -c "comanda"

Acest truc vă permite să adăugați comenzi Bash în fișiere batch sau scripturi PowerShell. Fereastra Bash shell va apărea când rulează o comandă Bash.

Pentru a crea o comandă rapidă pentru un script Bash din Windows, trebuie doar să creați o scurtătură ca în mod normal. Pentru comanda rapidă, utilizați comanda bash -c pe care am prezentat-o ​​mai sus și indicați-o la scriptul Bash pe care l-ați creat.

De exemplu, ar trebui să indicați o comandă rapidă la "bash -c" ~ / myscript.sh "" pentru a rula scriptul de mai sus. De asemenea, puteți rula această comandă și dintr-o fereastră de comandă sau PowerShell.