Funkce, výkonná funkce programování shellu, je skupina příkazů organizovaných podle běžných funkcí. Tyto snadno spravovatelné jednotky při volání vracejí jedinou hodnotu a nevydávají nic. Použití funkce zahrnuje dva kroky:
1. Definování funkce
2. Vyvolání funkce
Funkce shellu versus alias shellu
Funkce prostředí a aliasy se liší ve dvou bodech.
– aliasy neberou argumenty jako funkce.
– pokud je název příkazu definován jako funkce a alias, alias má přednost.
Zobrazení funkcí shellu
Chcete-li zobrazit funkci definuje, použijte následující příkaz:
# typeset -f list () { ls --color=auto -al | wc -l } num () { who | wc -l }
Definování funkce
Funkce je definována pomocí následujícího obecného formátu:
# function [function name] { command; . . . command; }Poznámka :Za otevírací závorkou a před zavírací závorkou se musí objevit mezera.
Následující příklad definuje funkci s názvem num, která zobrazuje celkový počet uživatelů aktuálně přihlášených do systému. Funkce num spouští příkaz who, jehož výstup je dále směrován na příkaz wc.
$ function num { who | wc -l; }
Funkce shellu ve skriptech shellu
Funkce nejsou užitečné pouze ve skriptech shellu, ale používají se také v situacích příkazového řádku, kde je alias nepoužitelný. Pro demonstraci jsou funkce shellu spouštěny na příkazovém řádku, aby ilustrovaly, jak funkce fungují.
Následující příklad vytvoří funkci nazvanou seznam, která zobrazuje celkový počet podadresářů a souborů v aktuálním adresáři. Funkce list volá příkaz ls, jehož výstup je směrován na příkaz wc:
$ function list { ls -al | wc -l; }
$ list 34
Vyvolání funkce
Funkci můžete vyvolat pouhým zadáním názvu funkce na příkazovém řádku nebo ve skriptu shellu.
$ [function name]
Chcete-li například vyvolat funkci num na příkazovém řádku, použijte níže uvedený příkaz.
$ num