La commande du mois : faire le point


Imaginons cette situation complètement dingue : vous avez besoin du caractère point dans une commande shell (bash), mais il vous est formellement interdit de taper le caractère point directement.


Easy peasy lemon squeezy

Simple comme bonjour me direz-vous : echo -e '\x2e' et c'est réglé.

En effet. Mais nous allons compliquer le problème. Imaginons maintenant que vous soyez sévèrement limité en taille. Enfin pas vous personnellement hein, juste la longueur de votre commande.


Bash golf

C'est un problème de code golf où il faut obtenir un résultat donné de la manière la plus compacte possible. La commande echo -e '\x2e' donnée plus haut fait 14 de long. Voici mes essais successifs pour raccourcir, aidé en partie par l'IA.

echo -e '\x2e'
echo -e \\056
printf \\x2e
printf \\56    (*)
echo $'\56'
   (**)


And the winner is

Mais mon record absolu c'est cette commande là :

ls -d

Youhoooo ! Je suis un petit peu content parce que l'ai trouvée dans ma tête avec mon cerveau perso. Même qu'après, une IA très intelligente m'a dit que j'avais fait fort. Sbraaaaaa !


Jusqu'à preuve du contraire ?

Ce qui est bien avec une commande aussi courte, 5 caractères, c'est la possibilité d'énumérer exhaustivement toutes les commandes strictement plus courtes et de tester leur sortie. Ça nécessite deux trois précautions techniques quand même, mais ça m'a l'air faisable. À suivre...



(*) Merci l'IA pour celui-ci, je ne savais pas que printf interprétait directement l'octal \56 sans zéro en préambule \056.
(**) Merci l'IA aussi, je n'avais pas pensé aux chaines ANSI-C du type $' ... '