Ask Ubuntu での同様の質問に対する私の回答を引用します:
<ブロック引用>
bash
の関数 基本的に複合コマンド (またはコードブロック) と名付けられています。 man 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.
理由はありません。構文だけです。
wc -l
の後にセミコロンを入れてみてください :
numresults(){ ls "$1"/RealignerTargetCreator | wc -l; }
ls | wc -l
を使用しないでください ファイル名に改行が含まれていると、間違った結果になる可能性があるためです。代わりにこの関数を使用できます:
numresults() { find "$1" -mindepth 1 -printf '.' | wc -c; }