Я планирую создать функцию, которая упростит мне вещи. Функция будет выглядеть примерно так:
function lazymode()
{
echo "Hello World!";
}
, поэтому, когда я использую команду lazymode
в оболочке , она выдаст Hello World!
.
В какой файл следует поместить пользовательскую функцию?
Atkarīgs no funkcijas. Ja tas ir tikai ļoti vienkāršs viena līnijpārvadātājs, piemēram, jūs varat izveidot aizstājvārdu vai ielīmēt funkciju mapē ~ / .bashrc
(failā, kuru ielādē, kad tas sākas).
Ja esat izveidojot kaut ko nedaudz gaumīgāku, varētu būt lietderīgāk izveidot savu izpildāmo skriptu mapē ~ / bin /
, kas pēc noklusējuma nepastāv (tas ir tikai direktorijs), bet tam jābūt jūsu ceļā. Atcerieties, ka failam būs jābūt izpildāmam ( chmod + x faila nosaukums
) un jāsākas ar pareizu #! / Bin / bash
strofu.
Otrajā maršrutā ir dažas skaidras iezīmes. priekšrocības:
~ / bin /
atrodas arī šīs čaulas ceļā (kam tam vajadzētu būt lielākajā daļā gadījumu AFAIK). Labākā izvēle būtu fails ~ / .bashrc
.
Jūs varat vai nu ierakstīt čaulas funkciju definīcijas tieši failā ~ / .bashrc
vai, ja jums to ir daudz un jūs nevēlaties pārblīvēt savu ~ / .bashrc
failu, varat tos visus ievietot citā izvēlētajā failā - vienkārši pārliecinieties, ka avots ir šo failu jūsu failā ~ / .bashrc
. Piemēram, ja failam ar jūsu funkcijām ir nosaukums bash_functions
, vienkārši failā ~ / .bashrc
pievienojiet rindiņas:
if [[ -f /path/to/bash_functions ]]; then
source /path/to/bash_functions
fi
vai, līdzvērtīgi:
if [[ -f /path/to/bash_functions ]]; then
. /path/to/bash_functions
fi
, kur .
ir tikai avota
simbolisks attēlojums. Pārbaudot , ja
, pirms mēģināt to iegūt, pārliecinieties, vai fails / path / to / bash_functions
pastāv.
Šī metode ir ļoti līdzīga aizstājvārdu izveidošanai mapē ~ / .bashrc
, izveidojot failu ar nosaukumu ~ / .bash_aliases
un izmantojot līdzīgu sintaksi kā iepriekš aprakstītajā ~ / .bashrc
, lai pārbaudītu tā esamību un pēc tam iegūtu avotu.
Itt van egy alapvető eljárás az állandó funkció deklarálásához:
Nyissa meg a ~ / .bashrc
fájlt egy szövegszerkesztőben. Nem számít, melyik szövegszerkesztő, mindaddig, amíg tudod, hogyan kell használni, és amíg megnyitod a / home /
A ~ / végén. bashrc
deklarálja saját függvényét, például:
find_dirs () {
keresse meg a "$ 1" -típust d
}
Mentse és zárja be a fájlt.
Az ~ / .bashrc
fájlt az interaktív héj minden egyes megnyitásakor elolvassák (ez egy új terminál fül, bejelentkezés az ssh
segítségével, vagy nyissa meg a TTY1 vagy más virtuális konzolt). Ez nem lesz elérhető szkriptfájlokban, mert a ~ / .bashrc
nem olvasható be nem interaktív héjak esetén. Ez akkor sem érhető el, ha a bash
fájlt a - norc
opcióval futtatja.
Ha azt szeretné, hogy a funkció azonnal elérhető legyen az éppen megnyitott fülön,használja a source ~ / .bashrc
parancsot.
A függvények ugyanúgy vesznek fel argumentumokat, mint a normál parancsok. Például $ 1
- $ 9
jelzi a helyzetparamétereket, amikor meghív egy függvényt. A fenti példában a find_dirs
csak egy pozícióparamétert vesz fel, és find_dirs / etc
néven hívnák. A $ @
paranccsal hivatkozhat az összes helyzeti paraméterre. A függvények elfogadják az átirányítást is. Meghívhat egy függvényt az find_dirs $ 1> / dev / null
paranccsal; ezt a következőképpen is kijelenthetnénk:
find_dirs(){
find "$1" -type d
}
Man bash megjegyzése: "A függvényeket az aktuális héj kontextusában hajtják végre; értelmezésükre nem jön létre új folyamat". Ez azt jelenti, hogy ismernie kell azokat a funkciókat is, amelyek képesek megváltoztatni a shell végrehajtási környezetét - változtatni a változókat és a terminál beállításait.