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 peck (site web personnel) . Évalué à 1.
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 NeoX . Évalué à 3.
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.