Úvod do funkcií v systéme Unix

V tomto článku sa dozvieme o niektorých základných funkciách v systéme Unix. Mnohí z nás už možno vedeli, aké funkcie sú, ale dovoľte mi o tom stručne predstaviť. Funkcia obsahuje sadu inštrukcií, ktoré sa majú vykonať pomocou kódu napísaného vo vnútri odsadeného bloku. Sú užitočné, keď máme určitú úlohu, ktorú musí program robiť opakovane v pravidelných časových intervaloch. Písanie toho istého kódu sa zakaždým zjavne neodporúča, takže pomocou funkcií môžeme kód ľahko znovu použiť a volať ho kedykoľvek je to potrebné. Pozrime sa teraz, ako môžeme tieto funkcie definovať a implementovať skriptovaním v systéme Unix Shell.

Syntax funkcií v Unixe

Vytvorenie funkcií sa riadi nasledujúcim základným syntaktickým kódom. Vzorový príklad funkcie.

kód

First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)

Tu sme napísali dve vyhlásenia echo v rámci našej Prvej funkcie. Pri volaní funkcie môžeme zavolať iba podľa názvu funkcie.

Výkon

Predávanie parametrov na fungovanie v systéme Unix

Úspešne sme vytvorili jednoduchú funkciu, nazvali ju a vykonali príkazy, ktoré sme požadovali. Čo ak teraz potrebujem pridať dve čísla pomocou hodnôt zadaných používateľom? Tu by sme videli, ako môžeme napísať funkciu s argumentmi. Základná syntax by bola rovnaká. Príklad parametrizovanej funkcie

kód

Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)

Výkon

Vyzve nás, aby sme zadali meno a priali im

Rovnakým spôsobom môžeme dokonca vytvoriť súbor skriptu. Napíšeme doplnkovú funkciu do skriptu shellu a uvidíme, ako to funguje.

kód

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!

Výkon

Poznámka: Niekedy sa pri spustení skriptu sh môže vyskytnúť chyba ako:

Jediné, čo tu musí urobiť, je aktualizácia povolení súborov.

Môžeme dokonca spustiť súbor sh pomocou príkazu od. /add.sh

Rovnakým spôsobom môžeme dokonca vykonať funkciu poskytnutím argumentov príkazového riadku. Pozrime sa, ako to môžeme dosiahnuť pridaním troch čísiel.

kód

(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)

Teraz môžeme odovzdať naše čísla ako argumenty príkazového riadku a potom získať požadovaný výstup.

Čo ak funkcii nepredložíme žiadne argumenty?

A ak uvedieme iba dva argumenty?

Inak, môžeme prejsť strunami?

Môžeme dokonca mať náš kód takým spôsobom, aby pri opakovaných chybných argumentoch mohol zopakovať chybu. Nižšie uvádzame, ako môžeme používateľa požiadať o zadanie argumentov, ak neexistujú žiadne argumenty príkazového riadku.

kód

Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)

Výkon

Ak našej funkcii neodovzdáme žiadne argumenty, dá sa to nášmu ozvenu, kde sme požiadali o zadanie dvoch čísiel príkazového riadku a potom o výstupe súčtu. Robí tak, pretože sme nenaznačili funkciu zastaviť, ak narazíme na chybu. V druhom prípade môžeme vidieť, že výstup dáva súčet správne, bez akejkoľvek strednej odozvy. Môžeme použiť aj návratové príkazy na vrátenie hodnôt pre tieto unixové funkcie. Hodnota vo výkaze návratu sa ukladá v $?

Výkon

Ako cvičenie, môžete skúsiť napísať funkciu, ktorá sa objaví, ak neprejdeme argumentmi?

Vnorené funkcie v systéme Unix

Pomenovaním môžeme zistiť, že vnorené funkcie sú o definovaní funkcie vo vnútri funkcie. Pozrime sa, ako to môžeme urobiť teraz. Píšeme to vnútri skriptu pre ľahšie pochopenie.

kód

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!

Výkon

Vo vyššie uvedenom príklade sme volali prvú funkciu vnútri prvej. Teraz napíšeme funkciu iba v rámci prvej funkcie.

kód

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!

Aký výstup očakávate teraz? Myslíte si, že sa zobrazia podrobnosti o prvej aj druhej funkcii?

Výkon

Jasne vidíme, že táto funkcia nevyvolala vnútornú funkciu vo vnútri. Aký je problém?

V našom skripte sme nazvali iba prvú funkciu. Teraz skúste zavolať aj druhú funkciu. Ako je uvedené, tu nebudeme môcť volať funkciu sama osebe. Vo vyššie uvedenom kóde sme zvýraznili pridaný kód.

Výkon

Všimnite si, že ozvena, ktorú sme napísali po vykonaní druhej funkcie, sa dostala pred seba. Ak sa teraz pokúsime nazvať druhú funkciu, potom prvú?

Výkon

Dokážeme jasne pochopiť, že pokiaľ sa hlavná / prvá funkcia nezvolá, vnútorná funkcia sa nezvolá. Ako cvičenie, môžete skúsiť pridať dve čísla pomocou vnorených funkcií? (Jeden pre zadávanie užívateľských hodnôt a ďalšie pre pridávanie čísel)

záver

Takto môžeme definovať funkcie v Unixe. Jednou z hlavných výhod v Unixe, ktorú som zistil, bola chyba vo výstupe, ktorá sa dá ľahko pochopiť, a podľa toho môže pomôcť opraviť náš kód. Skúste vykonať tieto funkcie a použite príkaz return. Majte šťastné učenie v Unixe.

Odporúčaný článok

Toto bol sprievodca funkciami v systéme Unix. Tu diskutujeme úvod do funkcií v Unixe a rôznych druhoch funkcií spolu s vysvetlením syntaxe a podrobností. Viac informácií nájdete aj v ďalších navrhovaných článkoch -

  1. Unixová architektúra
  2. Príkazy Unix
  3. Použitie Unixu
  4. Otázky na rozhovor UNIX
  5. Sprievodca operátormi Unixu

Kategórie: