PowerShell – Funktsioonid (Ülesanne 08)

Funktsiooni eesmärk on lihtsustada koodi kirjutamist – esiteks vältida korduvate koodide uuesti ja uuesti kirjutamist ning samal ajal hoida kood lühem ja arusaadavam. Need saab üldiselt jagada kaheks – sisseehitatud (built-in) ja kasutaja poolt loodud (user-defined). Sisseehitatud funktsioone oleme juba tublisti ilma probleemideta kasutanud ja tavaliselt sarnanevad need ka teiste keeltega. Selles peatükis vaatame natuke tekstiga ja matemaatikaga seotud funktsioone ning õpime, kuidas luua oma funktsiooni. Kuna PowerShellis tegeleme objektidega, siis sellele rakendatavat funktsiooni kutsutakse hoopis meetodiks (method).

Töötamine tekstiga

Kasutame Get-Member käsku, et teada saada, millised on võimalikud meetodid tekstiga töötamiseks.

Tühikute eemaldamine

Teksti algusest ja lõpust tühikute eemaldamiseks kasutame “trim”-perekonna meetodeid.

Tekstist mitmete tühikute eemaldamiseks otseselt meetodit pole. Küll aga saaksime kasutada nn pattern mustrit. Me pole seda veel õppinud aga pane selle ikka siia. Lisatud koodis tähistab \s tühikut ja kasutades + märki, tähendab see “mitu tühikut”. Ning see asendatakse ühe tühikuga.

Tähe suuruse muutmine

Antud juhul on olemas meetodid, mis muudavad teksti kõik suur- või väiketähtedeks. Soovides näiteks nimede puhul, et iga algustäht oleks suurelt, tuleb natuke teistsugust lähenemist proovida.

Teksti tükeldamine

Teksti puhul ei tohi unustada, et tegemist on ka massiiviga. See tähendab, et tegemist on üksikute märkidega, mille poole saame pöörduda. Näiteks esimese märgi saamiseks kasutame indeksit 0:

Kasutades Substring() meetodit, saame valida, millist osa me tekstist soovime saada:

Selle vastupidine meetod oleks Remove(), mis eemaldab tekstist soovitud osa:

Mida me veel oleme kasutanud ja vajame ka edaspidi on teksti tükeldamine. Võtame hetkel suvalise lause ja tükeldame sõnad tühikute kohapealt. See loob omakorda sõnadest massiivi, kust saame jälle indeksite abiga sõnu kätte:

Teksti liitmine

Tekside liitmiseks eraldi meetodit pole. Kui soovid erinevaid sõnesid kokku liita, siis kasuta + märki.

Kui lisad muutujad jutumärkide vahele, siis võib + märgid ära jätta

Otsi ja asenda

Tekstist mingi märgi või osa leidmiseks ja asendamiseks kasutame Replace() meetodit.

Kui nimes on teisigi täpitähti näiteks, siis kasuta antud meetodit veel ja veel.

Matemaatika meetodid

Lihtsad aritmeetilised tehted töötavad PowerShellis nagu ikka

Võimalikud meetodid asuvad aga[Math] teegis.

Siin võiks aga suurem osa meetoditest juba tuttavad olla. Meetodi kasutamiseks tuleb selle ette lisada teegi nimetus [Math] ja kaks koolonit:

Ja kui valemis on mitu meetodit, siis tuleb iga kord [Math] teek välja kutsuda. Näiteks leiame ringi pindala raadiuse järgi ning ümardame vastuse kaks komakohta.

Funktsiooni loomine

Oma funktsiooni ehk alamprogrammi loomiseks kasuta järgmist süntaksit:

Ja välja kutsumiseks kirjuta lihtsalt funktsiooni nimi:

PowerShell ise soovitab, et funktsiooni nime valikult lähtuda nende loogikast <tegusõna>-<nimisõna>. Ja eriti õnnelikud ollakse kui kasutad inglise keeles nimesid, mille tegusõnad oleks Get, Set, Add, Remove jt.

Tihti on vaja funktsioonile töötlemiseks mingid andmed ette anda, mida kutsutakse parameetriteks. Neid on võimalik luua/lisada kahte moodi. Esimene näide on tuntud ka teistest programmeerimiskeeltest, kus sulgude vahe lisatakse parameetrid koos vaikimisi väärtustega. See tähendab, et kui funktsioonile ise parameetreid ette ei anna, siis kuvatakse vaikimisi väärtused.

Aga kui antud nime puhul ei tea soovitud nime, aga vanust, siis saab selle lisada vajaliku objekti nimetuse miinusega -vanus näiteks. Teine võimalus on parameetrite lisamine funktsiooni sisse:

Teine näide on tegelikult PowerShelli ametlik süntaks. Selle eelis on edasiarendus, mis lubab funktsiooni täiendada. Näiteks muuta parameetrite lisamine kohustuslikuks.

Nüüd kui unustasid atribuudid lisada, siis küsitakse need üle:

Ja kui soovid, et funktsioon lihtsalt tagastaks mingi väärtuse, kasuta return käsku

Abiteksti lisamine funktsioonile

Nagu me alguses alustasime sellest, et iga käsuga on PowerShellis kaasas abitekst. See sisaldas kirjeldust ja näidiseid. Nii saab ka oma funktsiooniga teha ja järgmisele administraatorile anda juhiseid funktsiooniga töötamiseks.

Nüüd saame küsida funktsioonilt abi

Või näiteid

Ülesanne 08

Koosta skriptifail, kuhu istutad kaks funktsiooni:

  • Funktsioon 1 – arvutab ringi pindala etteantud raadiuse järgi.
    Lisa funktsioonile lihtne abifail koos näite kasutamisega
  • Funktsioon 2 – koosta funktsioon, mis puhastab etteantud inimese täisnime ülearustest tühikutest ja täpitähtedest. Arvesta, et nimi võib ka hakata täpitähega. Nimi väljastatakse esitähed suurtena.
    Lisa abitekst oma funktsiooni kasutamisest ja näide.

 

Attachments2

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Autorist ja kontakt: kliki siia

Kontrolli tunnistust

Tööribale