Précédent Index Suivant

5.7   Émissions diverses

Tout ce que l'on a vu précédemment permet de s'assurer de la correction de la ligne courante. On peut forcer l'envoi de cette ligne à la tâche requérante grâce au caractère ­J ou LF ou Line Feed. le tampon est alors effacé et le curseur saute à la ligne suivante au moyen de la séquence LF, CR. Le caractère LF est lui-même transmis comme dernier caractère de la ligne courante. Schématiquement

---------- -------- ---------- -------
caractères état du caractère état de
émis par tampon émis vers l'écran
le clavier   l'écran  
---------- -------- --------- -------
initialement date_   date_
­J _ ­M date
  et ­J  
  envoi de   date
  date­J   _

Sur la plupart des claviers la grande touche à droite marquée RETURN, RETOUR ou encore ENVOI est associée au code CR c'est-à-dire ­M plutôt qu'à LF. On peut alors programmer l'interface pour que soit converti, en entrée, CR en LF !
 stty -nl 
Symétriquement en sortie, LF est converti en CR, LF. Ainsi donc, dans ce mode qui est natif

---------- -------- ---------- -------
caractères état du caractère état de
émis par tampon émis vers l'écran
le clavier   l'écran  
---------- -------- --------- -------
initialement date_   date_
­M _ ­M date
  et ­J  
  envoi de   date
  date­J   _

Inversement
 stty nl  
­M est un caractère normal et où seul ­J force l'envoi d'une ligne, conduirait au dialogue
$ who­J
      queinnec
              $ who­M­J
: program not found  

Les deux dernières lignes demandent explication. CR étant un caractère normal et who­M n'étant le nom d'aucun programme, le message d'erreur est donc
who­M : program not found 
ce qui explique la visualisation donnée plus haut, puisqu'en sortie CR n'est pas converti en ^Mmais est interprété par l'écran comme une commande de positionnement de curseur. UNIX nomme newline (ou NL)le caractère LF : c'est le délimiteur de ligne dans les fichiers UNIX, c'est aussi un séparateur syntaxique pour sh.


Précédent Index Suivant