et turvaline meie mõisted Õpime 2 programmeerimiseks väga kasulikku tööriista, mis töötavad suurepäraselt Bashis. Õppige looma funktsioonid ja määratleda torujuhtmed võib alguses tunduda keeruline, kuid siis näeme tohutut kasulikkus et nad pakuvad meile. |
Torud
Täpsemalt ja ilma liiga palju pöördeid võtmata on torujuhe meetod, mis võimaldab ühe protsessi väljundit suunata teise sisendiks, mis võimaldab rida eeliseid, nagu koodiridade vähendamine, tulemuste jaoks salvestusmuutujate vabastamine ja parendamine skripti efektiivsus.
Toru tunneb tavaliselt ära sümbol | mis võimaldab väljendeid liita; Kuigi seda kasutatakse vaikimisi, on torude loomiseks ka teisi võimalusi.
Näide: printige hiljutised kernelisõnumid
#dmesg võimaldab süsteemi käivitamisel näha hiljutisi kerneliteateid ja laaditud draivereid; saba prindib faili või käsu # viimased osad
dmesg | saba
Ehkki need võivad olla keerulised nii palju kui soovime, võimaldab torujuhtme põhistruktuur ühe käsu tulemust järgmise sisendina kasutada, mis võib anda uue käsu sisendi, kui jätkame järjestikuste torude lisamist.
funciones
Funktsioonid on lausete kogum, mis on rühmitatud nii, et neid saab mitu korda täita ilma, et peaksite neid uuesti kirjutama. See on samaväärne mõttega, et kui õpime toidutüüpi valmistama, kirjutame selle retsepti lehele ja iga kord, kui tahame seda toitu valmistada, uurime retsepti selle asemel, et kirjutada uus sama retseptiga leht.
Funktsioonide juures on võib-olla kõige olulisem võimalus edastada parameetreid, andmeid, mida nad nende töötlemiseks ja väljundi genereerimiseks kasutavad. Selle struktuur on järgmine:
function function-name {
protsessid
}
Näide: funktsioon, mis näitab teenuseid, mis töötavad TCP-protokollil. Samuti näeme, kuidas rohkem torusid paigaldada.
# Määratleme funktsiooni nime, see võib olla see, mis meile meeldib.
function services_tcp {
#cat liidab ja kuvab kausta / etc / services, mis on #, mis sisaldab kõiki teenuseid koos nendega seotud pordidega.
# esimene grep võtab loendi ja eemaldab kommentaarid, klahviga –v pöörame tulemuse ümber
# teine grep näitab ainult neid, mis on seotud TCP-ga
kass / etc / services | grep –v "^ #" | grep tcp
}
Kui peame selle funktsiooni täitma, peame seda lihtsalt selle nimega kutsuma:
tcp_teenused
Sel juhul töötab see ilma parameetriteta; Juhul, kui tal neid on, peame need lisama, nii et funktsioon töötab korralikult, vastasel juhul ei tööta funktsioon korralikult. Tagastamise kasutamine võimaldab funktsioonil protsessi tulemusena väärtust tagastada.
Näide: sisendparameetritega funktsioon, mis arvutab 2 numbri summa.
#! / bin / bash
funktsiooni summa ()
{
# võimaldades saame operatsiooni sooritada jutumärkides
olgu "tulemus = $ 1 + $ 2"
#return võimaldab tagastada täisarvu. Kui tagastamine on täidetud, deponeeritakse väärtus muutujas $?
return $ tulemus;
}
Funktsioon Summa kutsutakse ja me edastame 2 sisendparameetrit.
lisage 2 3
#trükib $ väärtuse? kajaga, hinnates muutuja tegelikku väärtust jutumärkides
kaja -e "Tulemus = $?";
Ma pole kindel, kuid funktsioonide return-lauset kasutatakse ainult täisarvu vahemikus 0–255, näiteks „exit” veakoodid, tavaliselt 0, kui kõik on korras, ja muudel juhtudel muud numbrit. Ehkki näites see toimib, ei ole minu arvates tulemuse tagastamisega hea tava.
Ütlen seal jama, et ah! silm! ha!
Tõde jättis minus kahtluse. Igal juhul võime funktsioonidega seotud probleemide vältimiseks asendada tagastuse kajaga juhul, kui funktsioon soovib väärtuse või stringi tagastada või printida.
Tõsi, selle lahendamiseks võite kasutada käsku bc, summafunktsioonis saate kasutada: result = `echo $ 1 + $ 2 | bc -ql "
hea,
Tahaksin teada, kuhu saaksin bashi failid süsteemi laiemaks käitamiseks salvestada ja see pole prügikasti kataloog, kuid võib olla varukoopiate kodu.
Tänud ja lugupidamine.
Suur aitäh teile, alustan stsenaariumidest ja tõde on see, et see on väga kasulik, jagate väga lahkeid oma teadmisi!
seoses
Aitäh! Kallistama!
Pablo
Süntaksiviga: "(" ootamatu
Näidet käivitades saan vea, kopeerisin selle täpselt samaks
Mis saab olla? olen ubuntus 14.10