Я хочу иметь возможность называть вкладки терминала, чтобы отслеживать, какая из них какая. Я нашел эту функцию (здесь) и поместите его в мой .bashrc
:
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
и теперь, когда я вызываю set-title my new tab name
имя вкладки, как и ожидалось, меняется на "имя моей новой вкладки". Проблема в том, что я хочу открыть новую вкладку и назвать ее с помощью set-title
. Я пытался сделать это следующим образом:
gnome-terminal --geometry=261x25-0+0 --tab -e "bash -c 'set-title tab1; sleep 10'" --tab -e "bash -c 'set-title tab2; sleep 10"
Однако теперь я получаю следующее сообщение об ошибке:
bash: set-title: command not found
И я думаю, это связано с тем, что новая вкладка gnome .bashrc
пока не знает об этой функции.
Как мне это сделать?
решение1
Сразу после использования функции set-title
вы можете создать команду с этой функциональностью, поэтому удалите функцию set-title()
, которую вы добавляете, ~/.bashrc
и создайте файл /usr/local/bin/set-title
:
#!/bin/bash
echo -ne "\033]0;$1\007"
Добавьте chmod: chmod +x /usr/local/bin/set-title
. И после того, как вы снова откроете терминал, вы можете использовать эту команду: set-title TEST
(если у вас есть /usr/local/bin/
в вашем $PATH
).
И затем вы можете использовать его при создании новой вкладки следующим образом:
gnome-terminal --geometry=261x25-0+0 \
--tab -e "bash -c 'set-title TAB1; sleep 10'" \
--tab -e "bash -c 'set-title TAB2; sleep 10'"
Если у вас по какой-то причине его нет /usr/local/bin/
в $PATH
, вы можете попробовать указать абсолютный путь к команде set-title:
--tab -e "bash -c '/usr/local/bin/set-title TAB1; sleep 10'"
решение2
Если вы хотите, чтобы ваши скрипты инициализации .bashrc, .bash_profile, .profile и т. д. запускались, запустите gnome-terminal с --login
опцией.