Dok se odmaknemo od jednostavnog pokretanja naredbi i premještanja u pisanje punih puknutih skripti, trebat će vam privremeno mjesto za spremanje podataka. Tu dolaze varijable.
Obavezno pročitajte prethodne članke serije:
I ostanite u tijeku cijele serije cijeli tjedan.
Većina programskih jezika dopušta korištenje varijabli, koje su jednostavno spremnici koji imaju vrijednosti. U PowerShellu imamo i varijable i vrlo su jednostavne za upotrebu. Evo kako stvoriti varijablu pod nazivom "FirstName" i dati mu vrijednost "Taylor".
$ FirstName = "Taylor"
Prvo što većina ljudi čini da je pitanje zašto smo stavili dolar znak ispred imena varijable, i to je zapravo vrlo dobro pitanje. Stvarno, znak dolara samo je mali nagovještaj ljuske da želimo pristupiti sadržaju varijable (mislim što je unutar kontejnera), a ne sam kontejner. U PowerShell-u, nazivi varijabli ne uključuju znak dolara, što znači da je u gornjem primjeru naziv varijable zapravo "FirstName".
U PowerShellu možete vidjeti sve varijable koje ste stvorili u varijabli PSDrive.
gci varijabla:
Što znači da možete izbrisati varijablu iz ljuske u bilo kojem trenutku:
Ukloni varijablu stavke: \ FirstName
Varijable ne moraju sadržavati niti jedan objekt; možete jednostavno pohraniti više objekata u varijablu. Na primjer, ako želite pohraniti popis pokretnih procesa u varijabli, možete je jednostavno dodijeliti izlazu Get-Processa.
$ Proc = Get-Process
Izigrati da to razumijemo je da zapamtimo da desna strana znaka jednakosti uvijek prvo procjenjuje. To znači da možete imati cijeli cjevovod na desnoj strani ako želite.
$ CPUHogs = Get-Process | Poredaj CPU - opadajući | odaberite - Prva 3
Varijabla CPUHogsa sada će sadržavati tri procesa koji se izvode pomoću najviše CPU-a.
Kada imate varijablu koja drži zbirku objekata, postoje neke stvari koje trebaju biti svjesne. Na primjer, pozivanje metode na varijablu uzrokovat će da se poziva na svaki objekt u zbirci.
$ CPUHogs.Kill ()
Što bi ubila sva tri procesa u zbirci. Ako želite pristupiti jednom objektu u varijabli, trebate ga tretirati kao niz.
$ CPUHogs [0]
To će vam dati prvi objekt u zbirci.
Varijable u PowerShellu slabo su tipizirane prema zadanom značenju mogu sadržavati bilo kakve podatke, to izgleda kao da ulove nove ljude u PowerShell cijelo vrijeme!
$ a = 10
$ b = '20'
Dakle, imamo dvije varijable, jedan sadrži niz, a drugi cijeli broj. Pa što će se dogoditi ako ih dodate? To zapravo ovisi o tome kojim ćete redoslijedom dodati.
$ a + $ b = 30
Dok
$ b + $ a = 2010
U prvom primjeru, prvi operand je cijeli broj, $, pa PowerShell misli da misli da pokušavate napraviti matematiku i stoga pokušavate pretvoriti i druge operande u cijele brojeve. Međutim, u drugom primjeru prvi operand je niz, tako da PowerShell samo pretvara ostatak operanda na žice i povezuje ih. Napredniji scenaristi spriječavaju ovu vrstu gotke tako što će varijablu baciti na vrstu koju očekuju.
[int] $ Broj = 5
[int] $ Broj = '5'
Gore će rezultirati i varijabla broja koja sadrži cijeli objekt s vrijednosti od 5.
Budući da je PowerShell namijenjen automatiziranju stvari, željet ćete izbjeći da korisnike potiču kad god je to moguće. Uz to, bit će vremena kad ga ne možete izbjeći, a za to vrijeme imamo cmdlet Read-Host. Korištenje je stvarno jednostavan:
$ FirstName = Čitač-Host -Prompt 'Unesite svoje ime'
Što god ste unijeli, tada će se spremiti u varijablu.
Izlaz za pisanje jednako je jednostavan s cmdletom Write-Output.
Write-Output "Kako do Geek Rocksa!"
Pridružite nam se sutra gdje vezujemo sve što smo naučili zajedno!