Forum Programmation.shell Séquences terminfo, bash et tput

Posté par  .
Étiquettes : aucune
0
25
sept.
2009
Bonjour à tous et à toutes,

je travaille actuellement au portage d'un script ksh sous bash.

Ce script est en fait un moteur de menu basé sur des séquences terminfo pour gérer les évènements tels que :

touche flèche haut
touche flèche bas
affichage en mode reverse lorsqu'on est sur une rubrique
gestion touche F1

etc...

Pour récupérer ces séquences, la commande "tput" est utilisée suivie du nom de l'évènement, par exemple pour gérer les évènements de la touche flèche haut :

tput kcuu1

Lorsque l'on execute cette commande sur un unix comme aix par exemple, he bien le curseur se déplace bien vers le haut, en revanche sous linux et cygwin ça affiche simplement le caractère A.

Le soucis c'est donc que le script ne fonctionne pas comme attendu.

Avec la commande infocmp on peut récupérer les séquences terminfo brutes relatives aux évènements, on peut ainsi comparer ce qu'on a sous AIX et Linux :

Aix :

kcuu1=\E[A

Linux :

kcuu1=\EOA

On voit donc que les séquences sont différentes, mais à priori pourquoi pas, tant qu'on utilise le nom de l'évènement avec "tput" cela devrait être transparent et donc portable quelque soit l'unix hôte.

Je cherche donc à savoir comment générer sous Linux, le même type d'évènement que j'obtiens sous AIX.

J'ai essayé de rejouer la séquence terminfo d'aix sous linux mais sans succès...

merci par avance pour votre aide
  • # Terminfo

    Posté par  (site web personnel) . Évalué à 1.

    Pour lire la base terminfo, ta commande se base sur la variable TERM.

    Et la tu as 2 problèmes : le variables qui ne sont pas settées correctement et les terminaux qui ne supportent pas ce qui est annoncé dans terminfo.

    Donc de façon générale, tu vas avoir beaucoup de mal à ce que ca marche à tous les coups.
    • [^] # Re: Terminfo

      Posté par  . Évalué à 3.

      export TERM=vt100 ou TERM=xterm

      en debut de script devrait resoudre pas mal de chose en forcant le type de terminal

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.