Ouvrir un terminal et executer automatiquement une commande a l'intérieur
Bonjour,
Je suis sur python 2.7.17
Avec un combobox j'ai besoin de sélectionner une console pour les divers version de Linux (XFCE, kde, gnome, etc) , et d'exécuter a l’intérieur une commande.
Ceci ne fonctionne pas car un terminal s'ouvre mais n'execute pas la ligne de commande ?
Merci d'avance pour vos avis et conseils.
Je suis sur python 2.7.17
Avec un combobox j'ai besoin de sélectionner une console pour les divers version de Linux (XFCE, kde, gnome, etc) , et d'exécuter a l’intérieur une commande.
def ssh(MDP, USER_MACHINE, IP_MACHINE, PORT_MACHINE):
PROG0 = "konsole "
PROG = "ssh "
CMD_SSH = PROG+" "+USER_MACHINE+"@"+IP_MACHINE+" -p "+PORT_MACHINE+" &"
cmd = PROG0+" "+CMD_SSH
print cmd
os.system(cmd)
liste_parametres_fenetre_connexion[6].destroy()
def sshpass(MDP, USER_MACHINE, IP_MACHINE, PORT_MACHINE):
PROG0 = "konsole "
PROG1 = "sshpass"
PROG2 = "ssh"
cmd = PROG0+PROG1+" -p '"+MDP+"' "+PROG2+" "+USER_MACHINE+"@"+IP_MACHINE+" -p "+PORT_MACHINE+"&"
print cmd
os.system(cmd)
liste_parametres_fenetre_connexion[6].destroy()
Ceci ne fonctionne pas car un terminal s'ouvre mais n'execute pas la ligne de commande ?
Merci d'avance pour vos avis et conseils.
Configuration: Linux / Firefox 94.0
1 réponse
-
Bonjour,
C'est normal, la plupart des terminaux (dontkonsole
) ne proposent pas de paramètres permettant de passer en paramètre une commande à exécuter.
Il faudrait utiliser quelque chose commepyautogui
pour sélectionner la fenêtre de terminal adéquate et émuler une saisie au clavier.
Ceci dit, généralement on procède plutôt dans l'autre sens :- soit l'utilisateur veut utiliser un terminal spécifique, et il tape la commande dans son terminal, quitte à configurer un alias dans son
~/.bashrc
; - soit on a besoin, dans un programme donné, d'établir une connexion ssh, mais dans ce cas il n'y a aucune raison d'ouvrir un terminal (il suffit de lancer la commande ssh avec
subprocess.Popen
, ou bien plus pratique, d'utiliserparamiko
).
Bonne chance - soit l'utilisateur veut utiliser un terminal spécifique, et il tape la commande dans son terminal, quitte à configurer un alias dans son