Exerciții - Parametri
În această unitate, veți utiliza Azure Cloud Shell în partea dreaptă a ecranului ca terminal Linux. Azure Cloud Shell este un shell pe care îl puteți accesa prin portalul Azure sau la https://shell.azure.com. Nu trebuie să instalați nimic pe computer pentru a-l utiliza.
O modalitate de a face scripturile flexibile este să utilizați parametri, astfel încât utilizatorii să poată furniza intrări atunci când rulează scriptul. În acest exercițiu, veți crea un script de backup și veți adăuga parametri la acesta.
Crearea unui script de backup
O activitate obișnuită este să creați un backup . Un backup este, de obicei, un fișier comprimat care stochează toate fișierele care aparțin, de exemplu, o aplicație. Când ați instalat PowerShell, ați obținut cmdletul Compress-Archive
, care vă poate ajuta să finalizați această activitate.
În terminalul Cloud Shell, rulați aceste comenzi bash:
mkdir app cd app touch index.html app.js cd ..
Acum ar trebui să aveți un director numit aplicație. Sunteți gata să lucrați cu PowerShell.
În același terminal, porniți un shell PowerShell (dacă nu este deja pornit) rulând
pwsh
:pwsh
Creați un fișier script denumit Backup.ps1 în directorul curent și deschideți-l în editorul de cod.
touch Backup.ps1 code Backup.ps1
Adăugați acest conținut la fișier și salvați fișierul. Puteți utiliza CTRL-S pe Windows și Linux sau CMD+S pe Mac pentru a salva.
$date = Get-Date -format "yyyy-MM-dd" Compress-Archive -Path './app' -CompressionLevel 'Fastest' -DestinationPath "./backup-$date" Write-Host "Created backup at $('./backup-' + $date + '.zip')"
Scriptul apelează
Compress-Archive
și utilizează trei parametri:-
-Path
este directorul fișierelor pe care doriți să le comprimați. -
-CompressionLevel
specifică cât se comprimă fișierele. -
-DestinationPath
este calea către fișierul comprimat rezultat.
-
Rulați scriptul:
./Backup.ps1
Ar trebui să vedeți acest rezultat:
Created backup at ./backup-<current date as YYYY-MM-DD>.zip
Adăugarea parametrilor la script
Dacă adăugați parametri la script, utilizatorii pot furniza valori atunci când rulează. Veți adăuga parametri la scriptul de backup pentru a activa configurarea locațiilor fișierelor sursă și a fișierului zip rezultat.
Adăugați următorul cod în partea de sus a fișierului Backup.ps1.
Notă
Utilizați comanda
code Backup.ps1
pentru a deschide fișierul dacă editorul nu este deschis.Param( [string]$Path = './app', [string]$DestinationPath = './' )
Ați adăugat doi parametri la script:
$Path
și$DestinationPath
. De asemenea, ați furnizat valori implicite, astfel încât utilizatorii să nu fie nevoiți să furnizeze valorile. Utilizatorii pot înlocui valorile implicite dacă este necesar. Trebuie să ajustați scriptul pentru a utiliza acești parametri. Vei face asta în continuare.Modificați codul din fișier pentru a utiliza parametrii, apoi salvați fișierul. Backup.ps1 ar trebui să arate astfel:
Param( [string]$Path = './app', [string]$DestinationPath = './' ) $date = Get-Date -format "yyyy-MM-dd" Compress-Archive -Path $Path -CompressionLevel 'Fastest' -DestinationPath "$($DestinationPath + 'backup-' + $date)" Write-Host "Created backup at $($DestinationPath + 'backup-' + $date + '.zip')"
Redenumiți directorul aplicației pentru a aplicația web rulând această comandă:
mv app webapp
Redenumirea aplicației director simulează faptul că nu toate directoarele pe care va trebui să le faceți backup vor fi denumite aplicație.
Nu vă mai puteți baza pe valoarea implicită pentru
$Path
. Va trebui să furnizați o valoare prin consolă atunci când rulați scriptul.Eliminați fișierul de backup, înlocuind
<current date as YYYY-MM-DD>
cu data curentă:rm backup-<current date as YYYY-MM-DD>.zip
Eliminați acest fișier pentru a vă asigura că primiți un mesaj care afirmă că valoarea
$Path
nu există. În caz contrar, veți primi un mesaj despre fișierul zip deja existent, iar problema pe care încercăm să o remediem ar fi ascunsă.Rulați scriptul fără a furniza parametri. (Scriptul va utiliza valori implicite pentru parametri.)
./Backup.ps1
Veți vedea un mesaj de eroare similar cu acesta:
Line | 8 | Compress-Archive -Path $Path -CompressionLevel 'Fastest' -Destination … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | The path './app' either does not exist or is not a valid file system path. Created backup at ./backup-<current date as YYYY-MM-DD>.zip
Scriptul vă anunță că nu poate găsi directorul ./app. Acum este momentul să furnizați o valoare parametrului
$Path
și să vedeți beneficiul adăugării parametrilor la script.Testați scriptul rulându-l:
./Backup.ps1 -Path './webapp'
Veți vedea un mesaj asemănător cu cel pe care l-ați primit mai devreme:
Created backup at ./backup-<current date as YYYY-MM-DD>.zip
Acum puteți utiliza parametri dacă directorul pentru care doriți să faceți backup nu se numește ./app sau dacă doriți să amplasați fișierul comprimat în altă parte decât directorul curent.
Felicitări. Ați creat un script de backup pe care îl puteți utiliza oricând doriți să creați un backup pentru un director de aplicații sau pentru orice alt director important. Apoi ați identificat părți ale scriptului care ar putea necesita modificarea frecventă și înlocuirea valorilor statice cu valori parametri. Astfel, cel mai probabil nu va trebui să modificați scriptul propriu-zis atunci când cerințele dvs. se modifică (de exemplu, dacă numele aplicației se modifică sau trebuie să modificați calea de destinație).