Въведение във функциите в Unix
В тази статия ще научим за някои основни функции в Unix. Много от нас може би вече са знаели какви са функциите, но позволете ми да дам кратко въведение за това. Функцията съдържа набор от инструкции, които се изпълняват от код, написан вътре в отстъпен блок. Те са полезни, когато имаме определена задача, която една програма трябва да изпълнява многократно през редовни интервали от време. Писането на един и същ код всеки път очевидно не се препоръчва, така че с помощта на функции можем лесно да използваме кода и да го извикваме винаги, когато се налага. Нека сега да видим как можем да дефинираме и приложим тези функции чрез скриптове на Unix Shell.
Синтаксис на функциите в Unix
Създаването на функции следва основния синтактичен код, както следва. Примерен пример за функция.
код
First()
(
echo “ First Program for defining functions ”;
echo “ Yayyy! “;
)
Ето, ние написахме две ехо изявления вътре в първата ни функция. За извикване на функцията можем просто да се обадим по името на функцията.
продукция
Преминаване на параметри към функция в Unix
Успешно сме направили проста функция, нарекохме я и изпълнихме командите, които ни бяха необходими. Сега, какво ще стане, ако трябва да добавя две числа чрез въведените от потребителя стойности? И така, тук щяхме да видим как можем да напишем функция с аргументи. Основният синтаксис би бил същият. Пример за параметризирана функция
код
Second()
(
echo “Enter your name: “;
read name;
echo “Hi $name, have a good day”;
)
продукция
Ще ни подкани да въведем име и да ги пожелаем
По същия начин можем дори да създадем скриптов файл. Нека напишем функция за добавяне в скрипт на черупка и да видим как работи.
код
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!
продукция
Забележка: Понякога по време на изпълнение на скрипта sh можем да получим грешката като:
Единственото, което трябва да направите тук, е чрез актуализиране на разрешенията за файлове.
Можем дори да изпълним SH файла с помощта на командата от. /add.sh
По същия начин можем дори да изпълним функция, като предоставяме аргументи от командния ред. И така, нека да видим как можем да направим това чрез добавяне на три числа.
код
(
number1=$1;
number2=$2;
number3=$3;
sum=$((number1+number2+number3));
echo “Sum is $sum”;
)
Сега можем да предаваме номерата си като аргументи на командния ред и след това да получим необходимия резултат.
Ами ако не предадем никакви аргументи на Функцията?
И, ако дадем само два аргумента?
Друго, можем ли да преминем струни?
Можем дори да имаме своя код по такъв начин, че той може да повтаря грешка при предаване на невалидни аргументи. По-долу тук, нека да видим как можем да помолим потребителя да въведе аргументи, ако нямаше предадени аргументи от командния ред.
код
Add()
(
number1=$1;
number2=$2;
if ( $# -ne 2 ); then
echo “ Enter two numbers to add “;
fi
sum=$((number1+number2));
echo “ Sum is : $sum “;
)
продукция
Ако не предадем никакви аргументи на нашата функция, тя дава ехото, където сме поискали да дадем два номера на командния ред и след това да даде резултата от сумата. Това става така, тъй като не казахме на Функцията да спре, ако срещнем грешката. Във втория случай можем да видим правилно даването на сумата без никакво междинно ехо. Можем дори да използваме команди за връщане при връщане на стойности за тези Unix функции. Стойността в декларацията за връщане се съхранява в $?
продукция
Като упражнение можете ли да опитате да напишете функция, която да избухне, ако не предадем аргументите?
Вложени функции в Unix
Чрез именуване можем да разберем, че вложени функции са за дефиниране на функция вътре във функция. Нека да видим как можем да направим това сега. Пишем това вътре в черен скрипт за по-лесно разбиране.
код
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!
продукция
В горния пример ние просто нарекохме втората функция вътре в първата. Нека сега напишем функция само в първата функция.
код
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!
Сега какъв резултат очаквате? Мислите ли, че ще бъдат показани и детайлите на първата и втората функция?
продукция
Ясно можем да видим, че Функцията не извика вътрешната функция вътре в нея. И така, какъв е проблемът тук?
Вътре в нашия скрипт сме извикали само първата функция. Сега опитайте като се обадите и на втората функция. Както беше наблюдавано, тук няма да можем да наречем Функцията сама по себе си. В горния код сме подчертали добавения код.
продукция
Забележете, че ехото, което сме написали след изпълнението на Втората функция, е дошло преди себе си. Сега, ако се опитаме първо да извикаме втората функция, последвана от първата?
продукция
Ясно можем да разберем, че докато не бъде наречена главната / първата функция, вътрешната функция не се извиква. Като упражнение можете ли да опитате добавянето на две числа, като използвате вложени функции? (Един за въвеждане на потребителски стойности и други за добавяне на числата)
заключение
И така, по този начин можем да определим функциите в Unix. И едно основно предимство в Unix, което открих, беше грешката в изхода, която може да бъде разбрана лесно и може да помогне да коригираме съответно нашия код. Опитайте да изпълните тези функции и използвайте команда за връщане също. Приятно учене в Уникс.
Препоръчителен член
Това е ръководство за функциите в Unix. Тук обсъждаме въведение към функциите в Unix и различни видове функции, заедно със синтаксиса и подробно обяснение. Можете да разгледате и другите ни предложени статии, за да научите повече -
- Unix архитектура
- Unix команди
- Използване на Unix
- UNIX въпроси за интервю
- Ръководство за оператори на Unix