Impossible d'arrêter l'exécution d'étapes simultanées dans le script shell - commande xfce4-terminal

Nov 10 2020
#!/bin/sh
xfce4-terminal
zenity --info
exit

Le comportement attendu sur mon bureau Xfce4 lorsque le script est exécuté (via un raccourci clavier) est que la fenêtre Terminal apparaît. Ce n'est que lorsque je ferme la même chose que la fenêtre Zenity apparaîtra.

Normalement, c'est exactement ce qui se passe. Cependant, si j'ouvre d'abord une fenêtre de terminal Xfce4 sur le bureau, puis que je commande le script sujet (encore une fois, via un raccourci clavier), une autre fenêtre de terminal apparaît (comme prévu), mais, simultanément, la fenêtre Zenity . C'est un comportement indésirable.

J'ai essayé beaucoup de choses, y compris la waitcommande et l'ajout de la terminalligne avec &&. Rien ne fonctionne pour moi.

Qu'est-ce qui cause ce problème et comment puis-je y remédier?

Réponses

1 thanasisp Nov 10 2020 at 07:12

Essayez cela, j'ai testé et ça a l'air bien.

xfce4-terminal -x bash -c 'trap "zenity --info" EXIT; bash'

Une fois exécuté, il ouvre un nouveau terminal xfce4 et exécute la commande suivante. Cette commande est un shell trap. Cela signifie que lorsque ce même processus, le terminal nouvellement ouvert, obtient le signal vers EXIT, exécutera la commande citée. Le dernier bashest de donner une invite, une fois le piège posé, comme dans ce post . J'ai également essayé -Hmais je n'ai pas fonctionné comme prévu.