bash, command_not_found_handle, calculatrice

  • Canada
  • GNU/Linux
  • Mutt
  • FOAF
  • PGP
J'apprends aujourd'hui l'existence de la fonction
command_not_found_handle() sous bash. Si on la déclare, toute commande
non trouvée sera passée à celle-ci. Vous l'avez peut-être déjà sentie
sur certaines distributions, qui lorsque vous tapez une commande
inexistante, vous proposent des substitutions.

Il ne m'en fallait pas plus pour décider d'exploiter cela pour ajouter
une fonctionnalité de calculatrice à bash. Je trouve le support
arithmétique de ce shell décevant (ne gère que les entiers) et sa
syntaxe ne donne pas trop dans le joli. « $[ 4 - 2 ] », yuck. Comme il
n'existe pas (en tout cas sur mon poste) de nom de commande entièrement
numérique, j'ai décidé que tout ce qui commence par un chiffre (et autre
caractères d'expressions mathématiques) passerait désormais dans une
calculatrice.

Avec avoir choisi « pcalc » comme calculatrice, entre autres parce qu'il
offre un support transparent de l'hexadécimal, je peux maintenant taper
directement dans bash :

prompt> 3 + 4
--> 7 0x7 0y111

prompt> 1.5 / 2
--> 0.75 0x0 0y0

prompt> 0xaa - 1
--> 169 0xa9 0y10101001


Problème, l'opérateur classique de multiplication (*) est interprété par
le shell, il faudrait idéalement l'échapper (\*); ça m'irrite, j'ai
décidé que « x » peut aussi être utilisé pour la multiplication :

prompt> 3 x 4
--> 12 0xc 0y1100


Même problème d'échappement avec les parenthèses; on peut utiliser la paire de
crochets ([]) à la place. Notons que si on utilise les crochets au tout
début de la ligne, il faut que le caractère suivant ne soit pas une
espace (sinon on invoque la commande « [ » qui existe déjà) :

prompt> [2 + 1] ^ [ 1 + 1 ]
--> 9 0x9 0y1001


J'attache à ce courriel la fonction; il suffit de l'ajouter à votre
.bashrc et les bash démarrés ensuite pourront utiliser l'arithmétique.




--
--====|====--
--------================|================--------
Patrice Levesque
http://ptaff.ca/
wayne(à)ptaff.ca
--------================|================--------
--====|====--
--
Pièces jointes
 

Re: bash, command_not_found_handle, calculatrice

  • Canada
  • Alpine

> Avec avoir choisi « pcalc » comme calculatrice, entre autres parce qu'il
> offre un support transparent de l'hexadécimal, je peux maintenant taper
> directement dans bash :


Ce paquet n'est pas disponible sous [K]ubuntu. Il faut télécharger et
installer le logiciel à la main. Il est disponible ici:
http://pcalc.sourceforge.net/

L'installation du paquet « Flex » est nécessaire pour pouvoir compiler
pcalc. Vous pouvez le télécharger grâce à votre gestionnaire de paquet
préféré.

Une fois Flex installé et le pcalc téléchargé, il ne vous reste qu'à
décompresser pcalc:
tar -xvf pcalc-2.tar.lzma

à le compiler:
cd pcalc-2
make

et à l'installer:
sudo make install


Par la suite ça devrait fonctionner sous [K]ubuntu tel que décrit par
Wayne.

Miguel
 

 

Propulsé par xhtmail