Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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

credenhill a écrit :

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
jplemoine a écrit :

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