Puis-je créer un fichier d'historique bash distinct pour chaque profil de terminal?

18

J'utilise un script bash pour démarrer gnome-terminal avec plusieurs onglets, chaque onglet utilisant un profil différent, un répertoire de travail et, dans certains cas, exécutant une commande dans l'onglet.

Dans cette situation, j'aimerais que la touche flèche vers le haut récupère les commandes qui ont été utilisées dans un onglet spécifique. Est-ce possible?

Inkayacu
la source
J'ai peur, je ne pense pas qu'il existe un moyen de déterminer le profil à partir de la coque.
tumbleweed

Réponses:

16

Je suppose que vous pouvez utiliser une commande personnalisée gnome-terminal pour chaque profil, par exemple

bash -c 'PROFILE=default_profile exec bash'

ou

bash -c 'PROFILE=screen_profile exec screen -U'

ou similaire.

Puis dans ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
enzotib
la source
10

Tant que la ttycommande vous donne des résultats distincts (ce qui devrait certainement être le cas dans n'importe quel environnement Unix standard, bien que j'aie eu des comportements irréguliers dans cygwin avec certains émulateurs de terminal), vous pouvez également l'utiliser pour séparer les choses.

J'ai quelque chose comme ceci dans mon .bashrc:

export HISTFILE="${HOME}/.history.d/history-"`uname -n`"-"`id -nu`"-"`tty|cut -c6-`

Ce qui peut sembler exagéré, mais vous avez l'idée. Il le répartit sur la base de

  1. sur quelle machine je suis,
  2. qui je suis et
  3. sur quel terminal je suis.

Et vous pourriez ajouter encore plus si vous pensez à des choses qui vous concernent.

Philipp Hanes
la source