Cituji svou odpověď na podobnou otázku na Ask Ubuntu:
Funkce v
bash
jsou v podstatě pojmenované složené příkazy (nebo kódové bloky). Odman bash
:Compound Commands A compound command is one of the following: ... { list; } list is simply executed in the current shell environment. list must be terminated with a newline or semicolon. This is known as a group command. ... Shell Function Definitions A shell function is an object that is called like a simple command and executes a compound command with a new set of positional parameters. ... [C]ommand is usually a list of commands between { and }, but may be any command listed under Compound Commands above.
Není uveden žádný důvod, jde pouze o syntaxi.
Zkuste zadat středník za wc -l
:
numresults(){ ls "$1"/RealignerTargetCreator | wc -l; }
Nepoužívejte ls | wc -l
protože vám může poskytnout špatné výsledky, pokud názvy souborů obsahují nové řádky. Místo toho můžete použít tuto funkci:
numresults() { find "$1" -mindepth 1 -printf '.' | wc -c; }