O shell é muito exigente sobre a sintaxe e o espaço em branco com a construção { ... }
. Essas duas maneiras de configurar essa função funcionariam:
ok() { grep ERROR $filename; }
ok() {
grep ERROR $filename
}
Em relação às chaves { .. }
vs. parêntesis ( .. )
, Bash's manual afirma que :
The semicolon (or newline) following list is required.
e
The braces are reserved words, so they must be separated from the list by blanks or other shell metacharacters.
Lista refere-se aos comandos dentro das chaves, e tudo isso se aplica onde sempre { ... }
é usado, mas funções são provavelmente o lugar mais comum.
Além disso, se você quiser dar o nome do arquivo como um parâmetro para a função, use $1
dentro dele. ou seja, ok() { grep ERROR "$1"; }
pode ser usado como ok test.txt
.