Aufrufen einer .bashrc-Funktion aus einem Bash-Shell-Skript

Aufrufen einer .bashrc-Funktion aus einem Bash-Shell-Skript

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 nameder 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 .bashrcFunktion im neuen Gnome-Tab noch nicht bekannt ist.

Wie kann ich das zum Laufen bringen?

Antwort1

Sofort durch die Verwendung der Funktion set-titlekönnen Sie mit dieser Funktionalität einen Befehl erstellen. Entfernen Sie also die Funktion set-title(), die Sie hinzufügen, ~/.bashrcund 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 --loginder Option.

verwandte Informationen