Przejdź do głównej zawartości

caller


  • caller – wbudowana komenda bash służąca do sprawdzania kontekstu wywołania funkcji w skryptach.
  • Pomaga w debugowaniu i śledzeniu stosu wywołań funkcji.
  • Dostępna w bash oraz powłokach zgodnych z POSIX.

Okno terminala
caller [poziom]
  • Bez parametrów – pokazuje kontekst bieżącej funkcji.
  • Z parametrem – pozwala przejrzeć wcześniejsze poziomy stosu wywołań.

ParametrOpis
poziom(Opcjonalny) Liczba całkowita określająca poziom stosu wywołań (0 – bieżąca funkcja, 1 – funkcja nadrzędna itd.).

Okno terminala
# Przykład 1: Wyświetlenie informacji o aktualnym wywołaniu
caller
# Przykład 2: Funkcja pomocnicza z debugowaniem
log_caller() {
echo "Wywołana przez: $(caller)"
}
# Przykład 3: Sprawdzenie kilku poziomów wywołań
f1() { f2; }
f2() { f3; }
f3() { caller 0; caller 1; caller 2; }
f1

  • Zwracane informacje: caller zwraca numer linii, nazwę funkcji oraz plik, w którym została wywołana.
  • Działa tylko w funkcjach: poza kontekstem funkcji może nie zwrócić żadnej wartości.
  • Pomocne w debugowaniu: często wykorzystywane w większych skryptach do śledzenia źródła błędów.

Błąd / KomunikatPrzyczynaRozwiązanie
Brak wynikucaller uruchomiony poza funkcjąUżyj caller wewnątrz funkcji lub głębszego stosu wywołań.
bash: caller: line N: invalid numberNieprawidłowy parametrUpewnij się, że podajesz liczbę całkowitą jako poziom stosu.