#1 Le 09/09/2014, à 17:17
- Sm3n
Envoyer un ctrl+c via expect sans stopper script
Salut,
J'ai un petit script en bash qui envoie des messages via un screen irssi. J'aimerais envoyer ces messages en couleur.
Dans irssi pour utiliser les codes couleurs on doit faire un ctrl+c suivi d'un chiffre, suivi du texte.
Mon problème est le suivant. Si dans mon script expect je place la commande :
send "\003"
(qui simule le ctrl+c) mon script s'arrête bien sûr. L'idéal serait un :
send "\0031Test\r"
003 = ctrl+c
1 = couleur rouge (je crois)
\r = Entrer
J'ai cherché du côté de trap mais je pense que j'ai pas tout saisi.
Donc comment je pourrais faire pour isoler le ctrl+c sans arrêter mon script et enfin envoyer mes textes en couleur ?
Attention, je cherche pas à juste afficher les couleurs uniquement sur mon irssi avec les couleurs ANSI par exemple. Mais bien envoyer du texte en couleur.
Merci d'avance.
Hors ligne
#2 Le 10/09/2014, à 09:43
- credenhill
Re : Envoyer un ctrl+c via expect sans stopper script
hello
trap "" 2
rend ^C inopérant dans le script
Hors ligne
#3 Le 10/09/2014, à 09:55
- jplemoine
Re : Envoyer un ctrl+c via expect sans stopper script
Le problème est d'écrire en rouge et que il pense que tu veux envoyer CTRL + C
ou
il faut envoyer d'abord un CTRL + C (quel est le but ?) puis mettre le texte en rouge.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#4 Le 10/09/2014, à 12:19
- Sm3n
Re : Envoyer un ctrl+c via expect sans stopper script
hello
trap "" 2
rend ^C inopérant dans le script
C'est ce que j'avais essayé mais ça fonctionne pas. Peu importe où je le place. Est-ce que la commande trap n'est pas réservée uniquement aux scripts bash ? Moi je lance un script expect -f
Voici une partie :
#!/usr/bin/expect -f
trap "" 2
set SITE [lindex $argv 0]
set LINK [lindex $argv 4]
spawn screen -rd
expect ""
send "\0034Test\r"
#Que je fasse le send du dessus sur une ligne ou sur deux, en mettant le "\r" ou non,
#le script fait un joli stop avec ^C
send "\u0001d"
interact
exit
Le problème est d'écrire en rouge et que il pense que tu veux envoyer CTRL + C
ou
il faut envoyer d'abord un CTRL + C (quel est le but ?) puis mettre le texte en rouge.
Le but du CTRL+C c'est d'activer le code ou la fonction couleur dans irssi. Quand tu le tapes, un C sur fond blanc s'affiche. tu peux donc ajouter le chiffre couleur et ton texte.
Sinon c'est ça, le CTRL+C arrête le script direct. la fonction interact ne s'effectue pas.
Hors ligne
#5 Le 10/09/2014, à 14:06
- credenhill
Re : Envoyer un ctrl+c via expect sans stopper script
trap c'est du shell, bash ou ksh ou sh, pas de l'expect
essayer
interact { \003 "" }
Dernière modification par credenhill (Le 10/09/2014, à 14:13)
Hors ligne
#6 Le 10/09/2014, à 16:23
- Sm3n
Re : Envoyer un ctrl+c via expect sans stopper script
Malheureusement, quand je rentre des commandes dans les accolades d'interact, rien ne se passe.
J'ai tenté plusieurs façons, essayé de copier les script que je trouve par là, mais j'y arrive toujours pas.
Sale bête ! ^^
Hors ligne