Ich möchte in der Lage sein, eine Terminal-Registerkarte zu benennen, damit ich den Überblick behalten kann, welche welche ist. Ich habe diese Funktion gefunden (Hier) und lege es in mein .bashrc
:
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
und jetzt wird beim Aufrufen set-title my new tab name
der Tab-Name wie erwartet in „mein neuer Tab-Name“ geändert. Das Problem ist, dass ich einen neuen Tab öffnen und ihn mit benennen möchte set-title
. Ich habe versucht, dies folgendermaßen zu tun:
gnome-terminal --geometry=261x25-0+0 --tab -e "bash -c 'set-title tab1; sleep 10'" --tab -e "bash -c 'set-title tab2; sleep 10"
Allerdings bekomme ich jetzt folgende Fehlermeldung:
bash: set-title: command not found
Und ich glaube, das liegt daran, dass die .bashrc
Funktion im neuen Gnome-Tab noch nicht bekannt ist.
Wie kann ich das zum Laufen bringen?
Antwort1
Sofort durch die Verwendung der Funktion set-title
können Sie mit dieser Funktionalität einen Befehl erstellen. Entfernen Sie also die Funktion set-title()
, die Sie hinzufügen, ~/.bashrc
und erstellen Sie eine Datei /usr/local/bin/set-title
:
#!/bin/bash
echo -ne "\033]0;$1\007"
Fügen Sie chmod: hinzu chmod +x /usr/local/bin/set-title
. Und nachdem Sie das Terminal erneut geöffnet haben, können Sie diesen Befehl verwenden, indem Sie: set-title TEST
(Wenn Sie ihn /usr/local/bin/
in Ihrem haben $PATH
).
Und dann können Sie es beim Erstellen einer neuen Registerkarte auf diese Weise verwenden:
gnome-terminal --geometry=261x25-0+0 \
--tab -e "bash -c 'set-title TAB1; sleep 10'" \
--tab -e "bash -c 'set-title TAB2; sleep 10'"
Wenn Sie es aus irgendeinem Grund nicht /usr/local/bin/
in Ihrem haben $PATH
, können Sie es mit einem absoluten Pfad zum Befehl „set-title“ versuchen:
--tab -e "bash -c '/usr/local/bin/set-title TAB1; sleep 10'"
Antwort2
Wenn Sie Ihre Initialisierungsskripte .bashrc, .bash_profile, .profile usw. ausführen möchten, starten Sie Gnome-Terminal mit --login
der Option.