function_name () {command1; command2; }
Lika псевдоними, функциите на Bash shell могат да бъдат дефинирани във файла .bashrc, но често е по-добре да ги поставите в собствения си файл с дефиниции. Ще го наречем „.bash_functions“, следвайки конвенцията, използвана за файла „.bash_aliases“.
Това означава, че трябва да кажем на файла .bashrc да се прочете в нашите дефиниции. Можем да копираме и изменяме фрагмента от код, който се чете във файла .bash_aliases. Стартирайте gedit и заредете файла „.bashrc“ с тази команда:
gedit .bashrc
gedit .bashrc файл
Трябва да добавите подчертания раздел, показан по-долу.
Можете да маркирате псевдонима и да натиснете Ctrl + C и след това да се преместите там, където искате новата секция, и да натиснете Ctrl + V, за да поставите копие на текста. Тогава всичко, което трябва да направите, е да промените двете места, където пише „.bash_aliases“ на „.bash_functions“.
Добавяне на bash_functions във .bashrc файл
Можем да запазим тези промени и да затворим gedit.
Сега ще създадем и редактираме файла „.bash_functions” и ще поставим дефиниция на функция в него.
докоснете .bash_functions gedit .bash_functions
Създаване и редактиране на .bash_functions
Това ще отвори празния файл „.bash_functions“ в gedit.
Ще добавим проста функция, която се извиква. up ще вземе един параметър на командния ред, който е цифра. след това ще извика cd .. този брой пъти. Така че, ако сте използвали командата
нагоре 2
up ще извика cd .. два пъти и ще се придвижи нагоре с две нива в дървото на директориите.
Има различни начини за дефиниране на функция. Ето едно:
функция нагоре () {
Функцията дума не е задължителна. Ако сте традиционалист, използвайте го, ако не можете да се притеснявате да го въведете, оставете го настрана.
Ето цялата ни функция в gedit:
Редактиране на .bash_functions файл
функция нагоре () {
Това бележи началото на нашата дефиниция на функцията и я назовава.
нива = $ 1
Това създава променлива, наречена нива и го задава на стойността на първия параметър. Този параметър ще бъде цифра, предоставена от потребителя, когато извика функцията. $ 1 означава „първи параметър на командния ред.“
while ['$ levels' -gt '0']; направете
След това въвеждаме цикъл, който след това ще се преведе като „когато“ стойност ' на ' нива ”Е положителна или по-голяма от нула, направете това, което се съдържа в тялото на цикъла.”
Вътре в тялото на цикъла имаме две команди. Те са:
cd ..
Преместете ниво нагоре в дървото на директориите.
нива = $ (($ нива - 1))
Задайте нива на нова стойност, която е с една по-малка от текущата.
След това се връщаме в горната част на цикъла, сравнението между стойността на нивата и нулата се прави още веднъж. Ако „нива“ е повече от нула, тялото на цикъла се изпълнява отново. Ако не е положително или по-голямо от нула, цикълът е завършен и ние преминаваме към готовия оператор и функцията е приключила.
Запазете тези промени и затваряне gedit .
Ще прочетем и изпълним командите в „.bashrc“, които трябва да прочетат и изпълнят командите в нашия файл „.bash_functions“.
. .bashrc
Обадете се ..bashrc
Можем да тестваме функцията, като се преместим на някакво място в дървото на директориите и използваме, за да се върнем обратно в „по-висока“ точка в дървото на директориите.
cd ./work/backup/ up 2
Функция нагоре
Функцията работи. Преместихме две нива на директория по-високо в дървото.
Проследяване с тип
Докато създавате набор от псевдоними и библиотека от функции, може да стане трудно да запомните дали дадена команда е псевдоним или функция. Можете да използвате „ Тип' команда за напомняне. Готиното тук е, че вие също виждате определението.
Нека използваме type на нашия FTC псевдоним и нашата функция нагоре.
тип ftc тип нагоре
Използване на тип
Получаваме много полезно напомняне за това какъв тип команда е всяка, заедно с техните дефиниции.
Започнете да събирате
Псевдонимите и функциите могат да ускорят изключително много използването на командния ред. Те могат да съкратят командните последователности и ви позволяват да включите опциите, които винаги използвате със стандартни команди. Всеки път, когато видите изящна еднолинейна или полезна функция, можете да я адаптирате и персонализирате и след това да я добавите към вашите файлове „.bash_aliases“ или „.bash_functions“. Широкото им използване може да помогне да направите времето си в черупката по-приятно и по-малко сложно.
Не забравяйте да внимавате да предефинирате съществуващите команди с поведение, което е потенциално разрушително. Дори да правите обратното и да комбинирате команда с по-безопасен вариант (винаги искайте потвърждение, преди да го изтриете рекурсивно, например), може да се върне, за да ви ухапе първия път, когато сте в системата, без да го разчитате . За да намерите кандидати, за които може да е добре да създадете псевдоними, може би е добра идея да потърсите в историята си най-често използваните команди.
12 минути четене