Há alguns meses, tatuei uma bomba de garfo no braço e pulei os espaços em branco, porque acho que fica melhor sem eles. Mas, para minha consternação, às vezes (nem sempre) quando eu o executo em um shell, ele não inicia uma bomba, mas apenas gera um erro de sintaxe.
bash: syntax error near unexpected token `{:'
Ontem aconteceu quando tentei executá-lo no shell Bash de um amigo e, em seguida, adicionei o espaço em branco e, de repente, funcionou, em :(){ :|:& };:
vez de:(){:|:&};:
O espaço em branco importa; tatuei um erro de sintaxe no meu braço ?!
Parece sempre funcionar no zsh , mas não no Bash.
Uma pergunta relacionada não explica nada sobre os espaços em branco, o que realmente é minha pergunta; Por que o espaço em branco necessário para o Bash é capaz de analisá-lo corretamente?