$ gnome-terminal --tab --title="700" --disable-factory -e
Failed to parse arguments: Option "--disable-factory" is no longer supported in this version of gnome-terminal.
J'utilise GNOME 3.
Si vous avez vraiment besoin de plusieurs instances du processus gnome-terminal en cours d'exécution (mais pourquoi le devriez-vous?), Suivez les étapes décrites à la section https://wiki.gnome.org/Apps/Terminal/Debugging sauf pour le gdb partie.
Pour le bénéfice du lecteur.
Option --disable-factory
got supprimé dans la V3.8 sur gnome-terminal
et il y a aucun moyen d'archiver ce comportement facilement. Du moins pas un moyen, qui peut être expliqué aux personnes qui ne maîtrisent pas la syntaxe Shell.
D'où la ligne de commande
gnome-terminal --tab --title="700" --disable-factory -e ...
échoue avec l'erreur présentée dans la question.
Veuillez excuser cette note latérale très personnelle: je ne comprends vraiment pas pourquoi cette option cruciale a été supprimée. Même Microsoft a introduit une option pour exécuter
cmd
,Explorer
oupowershell
de manière bloquante. Microsoft écoute leurs utilisateurs. Mais Gnome ne le fait pas. Au lieu de documenter officiellement l'option cachée--disable-factory
, Gnome l'a soudainement supprimée. S'ils continuent dans cette voie, ils feront gagner Microsoft sur le long terme. C'est très très triste et stupide extraordinaire. (Désolé pour ce coup de gueule, mais il faut le dire.)
BTW: Ubuntu 16.04 restauré--disable-factory
en utilisant un wrapper qui émule cette fonctionnalité. (Si vous regardez la complexité de ce wrapper , mon discours s'applique encore plus qu'avant.)
J'appelle cela 0
, parce que les deux solutions ne sont pas vraiment appropriées. Une solution appropriée est indiquée dans la variante 1.
Une première chose que vous pouvez essayer est de supprimer l’option --disable-server
:
gnome-terminal --tab --title="700" -e ...
Cependant, ceci a les inconvénients suivants:
Ceci n'attend plus que gnome-terminal
se termine . Si un autre gnome-terminal
est en cours d'exécution, la commande revient immédiatement. Ce n’est généralement pas ce que vous voulez, car c’est pourquoi l’option --disable-factory
était présente au départ.
Donc, supprimer cette option n’est possible que dans le cas où vous pouvez être sûr que, dans tous les cas, aucun autre gnome-terminal
ne sera en cours d’exécution.
Si ce n'est pas le cas, mais que vous êtes dans le cas où un autre exécutant gnome-terminal
ne doit pas être pris en charge, vous pouvez essayer de suivre la variante de secours désespérée :
killall -9 gnome-terminal
gnome-terminal --tab --title="700" -e ...
Mais méfiez-vous! Ceci tue inconditionnellement tous les gnome-terminal
s qui sont encore ouverts. Dans un environnement de production, cela causera généralement plus de dommages que cela aide. Vous avez été prévenu!
Si vous n'avez pas besoin de l'exécuter dans gnome-terminal
et que vous pouvez l'exécuter dans un autre émulateur de terminal. @muru a commenté un bon remplaçant.
xfce4-terminal
comprend à peu près le même ensemble d'options que gnome-terminal
(et ajoute d'autres options très pratiques qui manquent dans gnome-terminal
pendant des années). Il a aussi une option documentée, qui fait ce que --disable-factory
a fait pour gnome-terminal
. L'option --tab
fonctionne différemment de gnome-terminal
et doit donc être supprimée également pour que quelque chose fonctionne. Le remplacement est:
xfce4-terminal --title="700" --disable-server -e ...
Vous pouvez également ajouter une option --hold
, si vous souhaitez pouvoir afficher le résultat complet de la commande avant la fermeture de la fenêtre:
xfce4-terminal --hold --title="700" --disable-server -e ...
Veuillez noter que xfce4-terminal
a une petite condition de concurrence critique qui tronque malheureusement la sortie. --hold
n'est donc pas pleinement efficace. Corriger cela correctement (de manière à pouvoir utiliser le copier/coller) n’entre pas dans le cadre de la réponse, mais il faut généralement ajouter un peu de echo $? && read -t.1
au script exécuté avec (derrière) -e
can. résolvez-le 99% du temps.
Si vous recevez le message que xfce4-terminal
est manquant, vous devez d'abord l'installer. Il peut être installé en parallèle à gnome
, même s'il appartient à une autre variante du bureau (Xfce):
Sudo apt-get install xfce4-terminal
Le seul inconvénient est que xfce4-terminal
a un autre aspect que gnome-terminal
et suit un autre
Il existe d'innombrables autres variantes possibles pour résoudre ce problème. La plupart d'entre eux sont vraiment compliqués. Trop compliqué pour les gens normaux, ceux qui ne sont pas vraiment dans la coquille.
Alors je les laisse partir. Ma recommandation est la suivante:
Comme l'a noté @muru, essayez d'utiliser xfce4-terminal
au lieu de gnome-terminal
.
Toutes les solutions simples ne sont pas vraiment parfaites, car elles ne renvoient pas la valeur de retour de la commande (gnome-terminal
ne le fait pas non plus). Malheureusement. Pour résoudre ce problème, il s'agit d'une histoire complètement différente.
https://unix.stackexchange.com/a/502498/303187 Pour éviter la publication croisée, je ne fais que laisser le lien, suivez-le et faites défiler vers le bas si vous êtes paresseux à lire - il y a un archive à placer dans /
, il contient tous les fichiers à créer