5.12 Manipulations
Certains programmes ont eux-mêmes une notion de ligne courante (par exemple
sh,
Le_Lisp et d'autres).
Quoique officiant souvent en mode
cbreak et
-echo ils sont lancés par
sh en mode normal.
Leurs arguments d'appel passent donc à travers l'interface et
sh.
Les mécanismes peuvent donc se conjuguer.
Par exemple
grep '\\\\' *
permet de rechercher toutes les lignes des fichiers du répertoire courant,
comportant au moins une barre de fraction inverse.
En effet les quatre caractères \\\\ frappés au clavier passent
tels quels l'interface, sont interprétés par
sh comme la chaine \\ (puisque \ est le caractère
d'échappement de
sh)
qui est alors soumise à
grep qui l'interprète lui-même comme l'unique caractère \,
puisque \ est
aussi le caractère d'échappement de
grep !
Un bel exemple de masochisme serait
alors (\ étant aussi le caractère d'échappement de
nroff la série des huit caractères \ qui suit a été
frappée sous la forme de seize \ !)
stty lnext '\\'
grep '\\\\\\\\\\\\\\\\' *
qui recherche la même chose que précédemment !
L'explication graphique est la suivante
Manipuler
UNIX
via TRANSPAC pose des problèmes analogues lorsque l'on désire
transmettre P.