C'est un classique, analysons le ensemble: :(){ :|:& };: peut-être réécrit comme
:()
{
:|:&
}
:
(Un point-virgule, devenu inutile à cause du retour à la ligne, a été supprimé.)
Le : est un identificateur pour une fonction, que l'on définit. Le corps de la fonction est un appel non-bloquant (&) à :|: qui lance deux sous-shells executant la fonction : et les connecte par un pipe|. Chacun des sous-shells va lui aussi exécuter un apple à un sous-shell et on va donc épuiser très rapidement les ressources du système: c'est une fork-bomb (très classique).
[^] # Re: trop drole
Posté par Michaël (site web personnel) . En réponse au message Vos Commandes super cool !. Évalué à 5.
C'est un classique, analysons le ensemble:
:(){ :|:& };:peut-être réécrit comme(Un point-virgule, devenu inutile à cause du retour à la ligne, a été supprimé.)
Le
:est un identificateur pour une fonction, que l'on définit. Le corps de la fonction est un appel non-bloquant (&) à:|:qui lance deux sous-shells executant la fonction:et les connecte par un pipe|. Chacun des sous-shells va lui aussi exécuter un apple à un sous-shell et on va donc épuiser très rapidement les ressources du système: c'est une fork-bomb (très classique).