Kann ich für jedes Terminalprofil eine separate Bash-Verlaufsdatei erstellen?

18

Ich verwende ein Bash-Skript, um gnome-terminal mit mehreren Registerkarten zu starten, wobei jede Registerkarte ein anderes Profil und Arbeitsverzeichnis verwendet und in einigen Fällen einen Befehl innerhalb der Registerkarte ausführt.

In dieser Situation möchte ich, dass die Aufwärtspfeiltaste Befehle abruft, die in einer bestimmten Registerkarte verwendet wurden. Ist das möglich?

Inkayacu
quelle
Ich fürchte, ich glaube nicht, dass es eine Möglichkeit gibt, das Profil anhand der Shell zu bestimmen.
Tumbleweed

Antworten:

16

Ich nehme an, Sie können zum Beispiel einen benutzerdefinierten Gnome-Terminal-Befehl für jedes Profil verwenden

bash -c 'PROFILE=default_profile exec bash'

oder

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

o.ä.

Dann in ~/.bashrc

if [[ -n $PROFILE ]]; then
    HISTFILE=~/.bash_history."$PROFILE"
fi
Enzotib
quelle
10

Solange die tty Befehl separate Ergebnisse liefert (was in jeder Standard-Unix-Umgebung sicherlich der Fall sein sollte, obwohl ich in Cygwin gelegentlich mit bestimmten Terminal-Emulatoren ein schlechtes Verhalten hatte), können Sie damit auch Dinge trennen.

Ich habe so etwas in meinem .bashrc:

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

Das mag übertrieben erscheinen, aber Sie haben die Idee. Es teilt es auf

  1. auf welcher maschine ich bin,
  2. wer ich bin und
  3. Auf welchem ​​Terminal bin ich?

Und Sie könnten noch mehr hinzufügen, wenn Sie an Dinge denken, die für Sie relevant sind.

Philipp Hanes
quelle