Veja a página bash
man, que mostra que a sintaxe ao usar chaves ( {
, }
) é:
{ list; }
Isso significa que você está perdendo alguns pontos-e-vírgulas:
{ [ $# -ne 2 ] && [ $# -ne 3 ]; } && { echo "Uso: $0 [opciones] [nlineasresultado] [archivos a analizar]" && echo "NEED 2 OR 3 PARAMETERS" && exit 1; }
Note que você também pode usar novas linhas para obter a mesma coisa. Ou seja, isso é um erro:
{ echo hello }
Mas isso funciona:
{ echo hello; }
Como isso:
{
echo hello
}