0Pricing
DevOps Bootcamp · Lekcja

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 DevOps Bootcamp 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 DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp 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"
}
greet

Argumenty 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.txt

Wartoś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; fi

Zwracanie 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"
}
deploy

Szybkie 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 oraz return do zwracania statusu
  • Ograniczanie zasięgu zmiennych za pomocą local i zwracanie danych przez echo
  • Utrwalanie ich w ~/.bashrc i 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 DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp 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 DevOps Bootcamp 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ąć DevOps Bootcamp?

Nie wymagamy żadnego doświadczenia. DevOps Bootcamp 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 DevOps Bootcamp?

Tak. Każda lekcja DevOps Bootcamp 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

  1. Zarządzanie zadaniami (bg, fg, jobs)
  2. Rozwijanie poleceń powłoki i globbing
  3. Aliasy i niestandardowe znaki zachęty
  4. Funkcje powłoki i wielokrotnego użytku fragmenty kodu
← Powrót do DevOps Bootcamp