web-dev-qa-db-fra.com

Exécuter une commande personnalisée dans un profil `gnome-terminal`

J'ai créé un profil de terminal gnome personnalisé dans Ubuntu 16.04 afin de configurer un environnement de développement spécifique. Cependant, je ne peux pas déterminer quoi entrer en tant que custom command du profil.

Ce que je veux que mon nouveau profil de terminal fasse:

  1. Exécuter les scripts par défaut généralement utilisés par le terminal par défaut (.bashrc etc)
  2. Exécuter un script personnalisé (par exemple $HOME/.dev_profile)

Quelle doit être ma commande personnalisée?

2
Andrew Marshall

[ REMARQUE: ci-après, j'ai appelé le fichier d'initialisation de shell personnalisé .devrc plutôt que .dev_profile pour conserver la distinction entre l'initialisation de shell avec ou sans connexion. ]

Notez également que cette réponse suppose que ce que vous voulez réellement faire est sourcez un environnement personnalisé plutôt que exécutez une commande personnalisée.


Une façon de le faire serait de créer un fichier d’initialisation personnalisé (.devrc, par exemple) qui source les fichiers standard, puis ajoute vos personnalisations, par exemple:

$ cat ~/.devrc
#
# Custom .bashrc for develeopment terminal profile
# 
if [ -r "/etc/bash.bashrc" ]; then
    . "/etc/bash.bashrc"
fi

if [ -r "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
fi

# add your dev-specific stuff here
export myvar1=foo
export myvar2=bar

Ensuite, dans votre profil gnome-terminal, vous pouvez définir la commande personnalisée pour utiliser le fichier rc alternatif.

/bin/bash --rcfile "/home/steeldriver/.devrc"
1
steeldriver

Vous pouvez simplement créer un fichier .desktop pour ouvrir un terminal avec le profil souhaité et exécuter un script dans ce terminal.

Le fichier .desktop _:

[Desktop Entry]
Encoding=UTF-8
Name=Edit to add name
Exec=gnome-terminal -e --window-with-profile=PROFILENAME "source $HOME/.dev_profile"
Terminal=true
Type=Application
NoDisplay=true

Notez que vous pouvez définir dans les paramètres de profil si vous souhaitez que le terminal ouvert reste ouvert ou non, une fois le script terminé.

0
M. Becerra