Dans le fichier .bashrc
, on peut ajouter un alias pour une commande, disons
alias geditm = 'gedit --display=D1'
Maintenant, je peux exécuter geditm
dans un terminal et ouvrir gedit dans l'écran D1. Je suis curieux de savoir s’il existe un moyen de définir un alias pour exécuter des commandes à partir du menu Alt-F2, afin de pouvoir Alt+F2, tapez geditm
et obtenez le même résultat.
Je suis intéressé à faire cela en général, pas seulement pour gedit.
Non, pas vraiment. Je ne suis pas sûr des détails mais j'imagine que le Alt+F2 transmet simplement les commandes que vous exécutez à un shell non interactif et non connecté. Ce type de shell n'aura pas accès aux alias, comme expliqué dans man bash
:
_ When bash is started non-interactively, to run a Shell script, for
example, it looks for the variable BASH_ENV in the environment, expands
its value if it appears there, and uses the expanded value as the name
of a file to read and execute. Bash behaves as if the following com‐
mand were executed:
if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
but the value of the PATH variable is not used to search for the file
name.
_
Ainsi, vous pourriez penser que vous pouvez simplement définir _BASH_ENV
_ pour qu'il pointe vers un fichier contenant des définitions d'alias. Malheureusement, les alias ne sont pas disponibles pour les shells non interactifs. Encore de man bash
:
_ Aliases are not expanded when the Shell is not interactive, unless the
expand_aliases Shell option is set using shopt (see the description of
shopt under Shell BUILTIN COMMANDS below).
_
Vous pourriez penser que vous pourriez ajouter _shopt -s expand_aliases
_ au fichier défini par _$BASH_ENV
_ mais cela ne fonctionnera pas car ce fichier sera lu mais dans un autre shell.
Je sais que c'est déroutant. En bout de ligne, vous ne pouvez pas mettre des alias à la disposition des utilisateurs. Alt+F2 dialogue.
Donc, comme vous ne pouvez pas faire cela avec des alias, vous pouvez le faire avec des scripts:
_Sudo -H gedit /usr/bin/geditm
_
Cela fera apparaître une nouvelle fenêtre gedit
, y ajoutera ces lignes et enregistrera le fichier:
_#!/bin/bash
gedit --display=D1
_
Rendre le script exécutable:
_Sudo chmod a+x /usr/bin/geditm
_
Maintenant, vous pouvez frapper Alt+F2, écrivez geditm
et le script qui sera lancé lancera à son tour gedit
avec les options souhaitées.
Remarque: après avoir relu votre question et y avoir réfléchi plus longtemps, je pense que la réponse de terdon est probablement celle que vous voulez, pas celle-ci; celui-ci est trop général et nécessite plus de dactylographie.
Si je comprends bien, vous voudrez peut-être ajouter --display=D1
à tout programme exécuté à partir de Alt-F2; est-ce correct? Après une discussion, probablement pas, alors assurez-vous de voir "EDIT2" avec cela pour une prise différente.
Si tel est le cas, il semble que vous puissiez créer un script simple qui réside dans un dossier de votre chemin, comme ~/bin
, qui dirait simplement:
#!/bin/bash
$1 --display=D1
Si vous nommez le script "display", à partir de Alt-F2, vous pourrez exécuter display gedit
et ajouter "--display = D1".
EDIT: Je suppose que vous devrez le rendre exécutable, en utilisant chmod +x display
Je ne peux pas vraiment tester cela facilement, mais ça devrait marcher (en supposant que c'est ce que vous voulez faire.
EDIT2: Il semble que je n'ai pas bien compris votre question, mais je pense que vous pouvez toujours utiliser une méthode similaire. Au lieu de spécifier l'indicateur, vous pouvez utiliser des substitutions pour la commande et les indicateurs. Je suppose que vous pourriez simplement dire
$*
au lieu de
$1 --display=D1
Alors la commande Alt-F2 serait "display xxxx yyyy ..."