Polecenie type

man type

type: type [-afptP] nazwa [nazwa ...]
    Wyświetlenie informacji o rodzaju polecenia.
    
    Określenie, w jaki sposób byłaby interpretowana każda NAZWA w przypadku
    użycia jako polecenie.
    
    Opcje:
      -a        wyświetlenie wszystkich położeń zawierających program wykonywalny
                o podanej NAZWIE; obejmuje aliasy, polecenia wbudowane i funkcje
                tylko jeśli nie podano dodatkowo opcji `-p'
      -f        pominięcie wyszukiwania funkcji powłoki
      -P        wymuszenie wyszukiwania w PATH każdej nazwy, nawet jeśli jest
                aliasem, poleceniem wbudowanym lub funkcją i zwrócenie nazwy pliku
                na dysku
      -p        zwrócenie nazwy pliku na dysku lub niczego, jeśli `type -t NAZWA'
                nie zwróciłoby `file'.
      -t        zwrócenie pojedynczego słowa: `alias', `keyword', `function',
                `builtin', `file' lub `', jeśli nazwa jest odpowiednio: aliasem,
                zarezerwowanym słowem kluczowym powłoki, funkcją powłoki, poleceniem
                wbudowanym powłoki, plikiem na dysku lub nie zostanie znaleziona
    
    Argumenty:
      NAZWA     Nazwa polecenia do zinterpretowania.
    
    Stan wyjściowy:
    Zwracana jest prawda, jeśli każda NAZWA zostanie znaleziona; fałsz, jeśli
    którakolwiek nie zostanie znaleziona.

Podpowiedź

Polecenie type pozwala tylko na wyświetlenie rodzaju wpisanego polecenia, jego dopełnieniem może być zewnętrzne polecenie which,

Podpowiedź

Polecenie type różni się niewiele od polecenia compgen

Przykłady użycia

johny@ThinkPad:~$ type bash
bash is /bin/bash
johny@ThinkPad:~$ type type
type is a shell builtin

Bardzo ciekawie działa funkcja type której argumentem jest nazwa funkcji zdefiniowanej przez uzytkownika.

Przykład

#!/bin/bash

moja_funkcja() {
        echo "To ja funkcja"
}

moja_inna_funkcja() {
        echo "Jestem inna funkcja"
}

type moja_funkcja

Skrypt wygeneruje następujace wyjście

johny@ThinkPad:~$ ./przyklad.sh
moja_funkcja jest funkcją
moja_funkcja () {
    echo "To ja funkcja"
}

Poprawnie został rozpoznany typ polecenia (jest to funkcja), oraz została wyświetlona jej zawartość.