Em bash
e outros shells POSIX, {
e }
não são exatamente símbolos , pois são palavras especiais neste contexto. Ao criar um comando composto, como em sua definição de função, é importante que eles permaneçam palavras , ou seja, cercados por espaços em branco.
O comando final em uma definição de função de linha única como esta deve ser terminado por um ponto-e-vírgula. Caso contrário, a chave de fechamento }
é tratada como um argumento para o comando.
Como um aparte, if você quer que sua função seja portável para outros shells POSIX, é melhor usar uma sintaxe de função diferente:
kk () { kate 2>/dev/null 1>&2 & disown; }
O uso de function
é específico de bash
, enquanto a forma dada aqui trabalha com bash
, assim como outras como sh, Korn e Almquist.
disown
também é bash específico.