Il y a quelques mois, j'ai tatoué un bombe à fourche sur mon bras, et j'ai sauté les espaces, parce que je pense que c'est plus joli sans eux. Mais à mon grand désarroi, parfois (pas toujours) quand je l'exécute dans un shell, il ne démarre pas une bombe fork, mais il donne juste une erreur de syntaxe.
bash: syntax error near unexpected token `{:'
Hier, c'est arrivé quand j'ai essayé de l'exécuter dans la voiture d'un ami. Bash puis j'ai ajouté l'espace et ça a soudainement fonctionné, :(){ :|:& };:
au lieu de :(){:|:&};:
Les espaces ont-ils une importance ? Me suis-je tatoué une erreur de syntaxe sur le bras ?!
Cela semble toujours fonctionner dans zsh mais pas dans Bash.
Une question connexe n'explique rien au sujet des espaces, ce qui est vraiment ma question ; Pourquoi l'espace blanc est-il nécessaire pour que Bash puisse l'analyser correctement ?
6 votes
J'ai posté la même question aquí (à l'exception de la partie tatouage).
3 votes
De même, les deux points ( :) ne peuvent pas être utilisés comme nom de fonction (voir : pubs.opengroup.org/onlinepubs/9699919799/utilités/ ) ... Le /bin/sh de FreeBSD donne même une erreur à ce sujet ...
5 votes
@Carpetsmoker : Je ne vois pas en quoi c'est pertinent. Cette question concerne Bash.