Johdatus Unixin toimintoihin
Tässä artikkelissa opitaan joihinkin Unixin perustoimintoihin. Monet meistä ovat jo saattaneet tietää, mitkä toiminnot ovat, mutta haluan antaa sen lyhyesti. Toiminto sisältää joukon ohjeita, jotka suoritetaan koodilla, joka kirjoitetaan sisennetyn lohkon sisään. Ne ovat hyödyllisiä, kun meillä on tietty tehtävä, joka ohjelman on tehtävä toistuvasti säännöllisin väliajoin. Saman koodin kirjoittamista joka kerta ei tietenkään ole suositeltavaa, joten toimintojen avulla voimme helposti käyttää koodia uudelleen ja soittaa siihen aina, kun sitä tarvitaan. Katsotaan nyt, kuinka voimme määritellä ja toteuttaa nämä toiminnot Unix Shell -komentosarjojen avulla.
Unixin funktioiden syntaksi
Toimintojen luominen noudattaa perussyntaksikoodia seuraavasti. Esimerkki toiminnosta.
Koodi
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Täällä olemme kirjoittaneet kaksi kaikulauseketta ensimmäisen toiminnon sisälle. Funktion soittamiseen voimme soittaa vain toiminnon nimellä.
ulostulo
Parametrien siirtäminen toimintoon Unixissa
Olemme onnistuneesti tehneet yksinkertaisen toiminnon, kutsuneet sen ja suorittaneet vaaditut komennot. Entä jos minun on lisättävä kaksi numeroa käyttäjän syöttämiin arvoihin? Joten tässä näemme kuinka voimme kirjoittaa funktion argumenteilla. Perussyntaksi olisi sama. Esimerkki parametroidusta toiminnosta
Koodi
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
ulostulo
Se kehottaa meitä antamaan nimen ja toivomaan heille
Samalla tavalla voimme jopa luoda skriptitiedoston. Kirjoitetaan lisätoiminto kuorikomentosarjan sisälle ja katsotaan miten se toimii.
Koodi
vi add.sh
echo “enter first number: “;
read a;
echo “enter the second number: “;
read b;
sum=$((a+b));
echo “ Result is $sum”;
*********************
Save the file with : wq!
ulostulo
Huomaa: Joskus suorittaessamme sh-komentosarjaa, saatamme virheen seuraavasti:
Ainoa tämä on tehtävä tässä päivittämällä tiedostojen käyttöoikeudet.
Voimme jopa suorittaa sh-tiedoston komennolla. /add.sh
Samalla tavoin voimme jopa suorittaa toiminnon tarjoamalla komentoriviargumentteja. Joten katsotaan kuinka voimme tehdä tämän lisäämällä kolme numeroa.
Koodi
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Nyt voimme siirtää numeromme komentoriviargumenteina ja saada sitten vaaditut tulokset.
Entä jos emme välitä argumentteja toiminnolle?
Ja jos annamme vain kaksi argumenttia?
Voimmeko siirtää kielet?
Meillä voi olla jopa koodimme siten, että se voi kaiuttaa virheen, kun virheelliset argumentit välitetään. Katsotaan alla tässä, kuinka voimme pyytää käyttäjää syöttämään argumentteja, jos komentoriviargumentteja ei ole annettu.
Koodi
Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)
ulostulo
Jos emme lähetä mitään argumentteja funktiollemme, se antaa kaikuomme, missä olemme pyytäneet antamaan kaksi komentorivinumeroa ja antamaan sitten summan tulosteen. Se tekee niin, koska emme käskeneet toimintoa lopettamaan, jos kohtaamme virheen. Toisessa tapauksessa voimme nähdä, että lähtö antaa summan oikein ilman välikaikua. Voimme jopa käyttää paluukomentoja palauttaaksesi arvot näille Unix-toiminnoille. Palautuslaskelman arvo tallennetaan dollareihin?
ulostulo
Voitko yrittää kirjoittaa funktion, joka puhkeaa, jos emme lähetä argumentteja?
Sisäkkäiset toiminnot Unixissä
Nimeämällä voimme selvittää, että Sisäiset toiminnot tarkoittavat funktion määrittämistä toiminnon sisällä. Katsotaan kuinka voimme tehdä sen nyt. Kirjoitamme tämän kuoren käsikirjoituksen helpottamiseksi ymmärrystä.
Koodi
vi Nested_Function.sh
***** Code Inside the sh Function*******
#!/bin/sh
First()
(
echo “ Inside First Function “;
echo “ Calling the second function below “;
echo “**********”;
Second
echo “**********”;
echo “ After calling Second function “;
)
Second()
(
echo “ Inside Second Function”;
echo “ Done “;
)
First
************************
Save the file with : wq!
ulostulo
Yllä olevassa esimerkissä kutsuimme juuri toista toimintoa ensimmäisen sisällä. Kirjoita nyt funktio vain ensimmäisen funktion sisään.
Koodi
vi Nest_Func1.sh
***** Code Inside the sh Function*******
First_One()
(
echo “ Inside the function First_One”;
echo “ Below is the inner function “;
Second_One()
(
echo “ ********** “;
echo “ Inside Inner function”;
echo “ Completed Second Function”;
echo “ ********** “;
)
echo “Done with second example too”;
)
First_One
Second_one
************************
Save the file with : wq!
Mitä tulosta odotat? Luuletko, että sekä ensimmäisen että toisen funktion yksityiskohdat näytetään?
ulostulo
Voimme selvästi nähdä, että toiminto ei kutsunut sisäistä toimintoa sen sisällä. Joten mikä täällä on ongelma?
Käsikirjoituksemme sisällä olemme kutsuneet vain ensimmäistä toimintoa. Kokeile nyt myös soittamalla toiselle toiminnolle. Kuten havaittiin, tässä emme voi kutsua toimintoa yksinään. Edellä olevassa koodissa olemme korostaneet lisätyn koodin.
ulostulo
Huomaa, että kaiku, jonka kirjoitimme toisen toiminnon suorittamisen jälkeen, on tullut itsensä edelle. Jos yritämme kutsua ensin toista toimintoa, sen jälkeen ensimmäistä?
ulostulo
Voimme selvästi ymmärtää, että ennen kuin pää / ensimmäistä toimintoa kutsutaan, sisäistä toimintoa ei kutsuta. Voitko kokeilla kahden numeron lisäämistä sisäkkäisillä funktioilla? (Yksi käyttäjäarvojen syöttämiseen ja toinen numeroiden lisäämiseen)
johtopäätös
Joten näin voimme määritellä toiminnot Unixissa. Ja yksi huomattava etu Unixissa, jonka löysin, oli tulosteen virhe, joka ymmärretään helposti ja voi auttaa oikaistamaan koodiamme vastaavasti. Kokeile suorittaa nämä toiminnot ja käytä myös paluukomentoa. Hyvää oppimista Unixissa.
Suositeltava artikkeli
Tämä on opas Unixin toiminnoista. Tässä keskustellaan johdannosta Unixin funktioista ja erityyppisistä toiminnoista sekä syntaksista ja yksityiskohtaisista selityksistä. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -
- Unix-arkkitehtuuri
- Unix-komennot
- Unixin käyttö
- UNIX-haastattelukysymykset
- Opas Unix-operaattoreille