Funkcje powłoki i wielokrotnego użytku fragmenty kodu
Definiuj i wykorzystuj funkcje Bash, aby grupować polecenia w wielokrotnego użytku, parametryzowane elementy składowe powłoki.
Funkcje powłoki i wielokrotnego użytku fragmenty kodu to bezpłatna lekcja Linux Command Line & Bash Scripting Mastery na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Linux Command Line & Bash Scripting Mastery, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Po co używać funkcji powłoki
Funkcja powłoki grupuje zestaw poleceń pod jedną nazwą, dzięki czemu można ich używać ponownie bez ponownego wpisywania.
- Jest szybsza niż kopiowanie i wklejanie poleceń
- Jest przejrzystsza niż długie aliasy
- Może przyjmować argumenty, w przeciwieństwie do aliasów
mkcd() {
mkdir -p "$1" && cd "$1"
}Definiowanie funkcji
Najprostsza forma używa składni name() { ... }. Polecenia w nawiasach klamrowych są wykonywane po wywołaniu funkcji według nazwy.
greet() {
echo "Hello from a function"
}
greetArgumenty funkcji
Funkcje otrzymują parametry pozycyjne tak jak skrypty: $1, $2. $# to liczba argumentów, a $@ rozwija się do wszystkich argumentów.
backup() {
cp "$1" "$1.bak"
echo "Backed up $1"
}
backup notes.txtWartości zwracane i status zakończenia
Funkcje zwracają status zakończenia za pomocą return N (0–255). Używaj go do sprawdzania powodzenia lub niepowodzenia, a nie do zwracania danych.
is_root() {
[ "$(id -u)" -eq 0 ] && return 0 || return 1
}
if is_root; then echo root; else echo normal; fiZwracanie wyniku za pomocą echo
Ponieważ return przenosi tylko kod statusu, właściwy wynik jest wyświetlany i przechwytywany za pomocą $( ).
timestamp() {
date +%Y%m%d-%H%M%S
}
name="log-$(timestamp).txt"
echo "$name"Zmienne lokalne
Domyślnie zmienne wewnątrz funkcji są globalne. Użyj local, aby ograniczyć zasięg zmiennej do funkcji i uniknąć zaśmiecania powłoki.
count_lines() {
local n
n=$(wc -l < "$1")
echo "$1 has $n lines"
}Domyślne wartości argumentów
Użyj rozwijania parametrów ${1:-default}, aby zastosować wartość domyślną, gdy brakuje argumentu.
say() {
local msg="${1:-Hello World}"
echo "$msg"
}
say
say "Custom message"Funkcje a aliasy
Aliasy po prostu zastępują tekst i nie obsługują poprawnie argumentów pozycyjnych. Funkcje mogą rozgałęziać wykonanie, wykonywać pętle i przetwarzać dane wejściowe.
- Proszę użyć aliasu w przypadku stałego skrótu
- Proszę użyć funkcji, gdy potrzebna jest logika lub argumenty
alias ll='ls -la'
lt() { ls -la "${1:-.}" | tail -n "${2:-5}"; }Utrwalanie funkcji
Funkcje zdefiniowane w wierszu poleceń znikają po zakończeniu działania powłoki. Proszę dodać je do ~/.bashrc, aby były dostępne w każdej sesji.
# Append to ~/.bashrc
extract() {
case "$1" in
*.tar.gz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*) echo "Unknown format" ;;
esac
}Wyświetlanie i usuwanie funkcji
declare -F wyświetla nazwy funkcji, a declare -f name pokazuje ich treść. Funkcję można usunąć za pomocą unset -f name.
declare -F
declare -f greet
unset -f greetŁączenie funkcji
Funkcje mogą wywoływać inne funkcje, co pozwala tworzyć małe elementy wielokrotnego użytku, które składają się na większe narzędzia.
log() { echo "[$(date +%T)] $*"; }
deploy() {
log "Starting deploy"
log "Done"
}
deploySzybkie sprawdzenie
Proszę sprawdzić swoją wiedzę na temat funkcji powłoki.
Podsumowanie
Nauczył(a) się Pan/Pani tworzyć wielokrotnego użytku funkcje powłoki:
- Definiowanie za pomocą
name() { ... }i wywoływanie po nazwie - Używanie
$1,$@,$#dla argumentów orazreturndo zwracania statusu - Ograniczanie zasięgu zmiennych za pomocą
locali zwracanie danych przezecho - Utrwalanie ich w
~/.bashrci sprawdzanie za pomocądeclare -f
Często zadawane pytania
Czy lekcja „Funkcje powłoki i wielokrotnego użytku fragmenty kodu” jest bezpłatna?
Tak — pełny tekst „Funkcje powłoki i wielokrotnego użytku fragmenty kodu” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Linux Command Line & Bash Scripting Mastery, przejdź na CoddyKit PRO. Kurs Linux Command Line & Bash Scripting Mastery zawiera 4 lekcji w sumie.
Co nauczysz się w „Funkcje powłoki i wielokrotnego użytku fragmenty kodu”?
Definiuj i wykorzystuj funkcje Bash, aby grupować polecenia w wielokrotnego użytku, parametryzowane elementy składowe powłoki. Ćwiczysz Linux Command Line & Bash Scripting Mastery z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Linux Command Line & Bash Scripting Mastery?
Nie wymagamy żadnego doświadczenia. Linux Command Line & Bash Scripting Mastery w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Funkcje powłoki i wielokrotnego użytku fragmenty kodu”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Linux Command Line & Bash Scripting Mastery?
Tak. Każda lekcja Linux Command Line & Bash Scripting Mastery zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Zarządzanie zadaniami (bg, fg, jobs)
- Rozwijanie poleceń powłoki i globbing
- Aliasy i niestandardowe znaki zachęty
- Funkcje powłoki i wielokrotnego użytku fragmenty kodu