että turvallinen meidän käsitteet Opimme 2 erittäin hyödyllistä ohjelmointityökalua, jotka toimivat täydellisesti Bashissa. Opi luomaan tehtävät ja määritellä putkistojen voi tuntua aluksi monimutkaiselta, mutta sitten näemme valtavan utilidad että he tarjoavat meille. |
Putket
Erityisesti ja ottamatta liikaa käännöksiä putkilinja on menetelmä, joka sallii yhden prosessin ulostulon ohjaamisen toisen syötteenä, mikä antaa joukon etuja, kuten koodirivien pienentäminen, varastointi muuttujien jättäminen tulosten saavuttamiseksi ja parantaminen skriptin tehokkuus.
Putki tunnistetaan yleensä symbolilla | joka antaa mahdollisuuden liittää lausekkeita; Vaikka sitä käytetään oletusarvoisesti, on olemassa muita tapoja luoda putkia.
Esimerkki: tulosta viimeisimmät ytimen viestit
#dmesg antaa sinun nähdä viimeisimmät ytimen viestit ja ladatut ohjaimet # järjestelmän käynnistyksen aikana; tail tulostaa tiedoston tai #komennon viimeiset osat
dmesg | häntä
Vaikka ne voivat olla monimutkaisia niin paljon kuin haluamme, putkilinjan perusrakenne sallii yhden komennon tuloksen käyttämisen syötteenä seuraavaan, mikä voi antaa uuden komennon syötteen, jos jatkamme peräkkäisten putkien lisäämistä.
Funciones
Funktiot ovat joukko lauseita, jotka on ryhmitelty siten, että ne voidaan suorittaa useita kertoja tarvitsematta kirjoittaa niitä uudelleen. Se vastaa ajattelua, että kun opimme valmistamaan tietyntyyppistä ruokaa, kirjoitamme sen reseptin arkille, ja joka kerta kun haluamme valmistaa tuon ruoan, neuvomme reseptin sen sijaan, että kirjoittaisimme uuden arkin samalla reseptillä.
Ehkä tärkein asia funktioissa on mahdollisuus välittää parametreja, tietoja, joita ne käyttävät niiden käsittelyyn ja tuotoksen tuottamiseen. Sen rakenne on seuraava:
funktio funktionimi {
prosessit
}
Esimerkki: toiminto, joka näyttää TCP-protokollalla toimivat palvelut. Voimme myös nähdä, kuinka lisää putkia.
# Määritämme funktion nimen, se voi olla haluamasi nimi.
function services_tcp {
#cat yhdistää ja näyttää / etc / services -kansion sisällön, joka on #, joka sisältää kaikki palvelut niihin liittyvillä porteilla.
# ensimmäinen grep vie luettelon ja poistaa kommentit, kääntämällä tuloksen kääntämällä –v
# toinen grep näyttää vain ne, jotka liittyvät TCP: hen
kissa / jne. / palvelut grep –v "^ #" | grep tcp
}
Kun meidän on suoritettava tämä toiminto, meidän on vain kutsuttava sitä nimellä:
tcp_services
Tässä tapauksessa se toimii ilman parametreja; Jos sillä on niitä, meidän on lisättävä ne, jotta toiminto toimii oikein, muuten toiminto ei toimi kunnolla. Palautuksen avulla funktio palauttaa arvon prosessin seurauksena.
Esimerkki: toiminto syöttöparametreilla, joka laskee 2 luvun summan.
#! / Bin / bash
funktion summa ()
{
# avulla voimme suorittaa operaation lainausmerkkien sisällä
anna "tulos = $ 1 + $ 2"
#return antaa arvon palauttaa kokonaisluku. Kun palautus on suoritettu, arvo talletetaan muuttujan $? Sisään.
return $ -tulos;
}
# Summa-funktio kutsutaan ja välitämme 2 syöttöparametriä.
lisää 2 3
# tulostaa $: n arvon? kaiku arvioimalla muuttujan todellinen arvo lainausmerkeissä
kaiku-e "Tulos = $?";
En ole varma, mutta funktioiden palautuslauseketta käytetään vain palauttamaan kokonaisluku välillä 0 ja 255, kuten "exit" -virhekoodit, yleensä 0, jos kaikki on kunnossa, ja toinen numero muissa tapauksissa. Vaikka esimerkissä tämä toimii, mielestäni ei ole hyvä käytäntö palauttaa tulos takaisin.
Siellä sanon hölynpölyä huh! silmä! ha!
Totuus jätti minut epäilemään. Joka tapauksessa funktioiden ongelmien välttämiseksi voimme korvata palautuksen kaikulla, jos toiminto pyrkii palauttamaan tai tulostamaan arvon tai merkkijonon.
On totta, että tämän ratkaisemiseksi voit käyttää bc-komentoa, sum-funktiossa voit käyttää: result = `echo $ 1 + $ 2 | bc -ql "
hyvä,
Haluaisin tietää, mihin voin tallentaa bash-tiedostot, jotta ne toimisivat koko järjestelmässä, eikä se ole roskakorihakemisto, mutta voi olla kotona varmuuskopiointia varten.
Kiitokset ja terveiset.
Paljon kiitoksia, aloitan käsikirjoituksista, ja totuus on, että tämä on erittäin hyödyllistä, jaat erittäin ystävällisesti tietosi!
terveiset
Kiitos! Halata!
Pablo
Syntaksivirhe: "(" odottamaton
Saan virheen yritettäessä suorittaa esimerkkiä, kopioin sen täsmälleen samalla tavalla
Mikä voi olla? olen Ubuntussa 14.10