Disons que j'ai besoin d'écrire un script qui lancera un terminal et exécutera une commande et j'en ai besoin pour travailler sur différents systèmes. Comment puis-je le faire de manière sûre et portable?
Est xterm
toujours installé? Je suppose que tout * nix avec une interface graphique doit avoir un émulateur de terminal. Comment puis-je y accéder? Les systèmes Debian ont x-terminal-emulator
mais cela, apparemment, ne fonctionne même pas dans Red Hat, encore moins les nix non Linux *.
expect
expect
? Comment? En demandant à l'utilisateur de taper son terminal?Réponses:
Je ne pense pas que vous puissiez.
xterm
n'a pas besoin d'être installé partout et n'est probablement pas par défaut. Surtout quand un environnement de bureau est en cours d'utilisation qui fournit son propre terminal.Je pense que le mieux est sans doute de vérifier l'existence de quelques terminaux différents ( par exemple,
xdg-terminal
,x-terminal-emulator
,gnome-terminal
,konsole
,xterm
). Et peut-être travailler pour que xdg-terminal soit réellement ajouté aux normes FreeDesktop.org.Ensuite, vous découvrirez que différents terminaux ont différentes manières d'exécuter des commandes, et parfois même des versions différentes du même terminal ... par exemple, voir le bogue Debian # 648271 .
Vous devriez probablement également donner à l'administrateur / utilisateur un moyen de définir une commande personnalisée. Ce sera sûrement nécessaire.
la source
case
déclarations.xinit
? Je ne l'ai pas fait depuis des années, mais cela chargeait un simple serveur X avec unexterm
fenêtre vide (?) À partir de laquelle vous pouviez démarrer votre session. Ne pas laisser entendre que certains émulateur de terminal est installé avec X?Oui, vous devez utiliser un wrapper. Il y en a une bonne incluse avec i3 WM. Expliqué ici: http://build.i3wm.org/docs/i3-sensible-terminal.html
Copiez simplement ceci dans une fonction shell dans votre script: http://code.stapelberg.de/git/i3/tree/i3-sensible-terminal
la source
which
ce qui est une mauvaise idée )