此用于命名 iTerm 选项卡的脚本如何工作



我正在尝试命名我的iTerm选项卡并找到了此链接。这是这家伙帖子的相关部分:

写了一个简单的脚本,我称之为"nametab",它允许你从命令行命名你所在的选项卡。您只需键入以下内容:

$ nametab New tab name

如果您想自己使用它,以下是代码:

#!/bin/bash
# A simple script which will name a tab in iTerm
# usage:
# $ nametab New tab name
echo -ne "33]0;"$@"07"

我创建了一个目录$HOME/dev/bash_scripts并在该目录中放置了一个名为 nametab.sh 的文件。 然后我切换到该目录并运行命令

chmod u+x nametab.sh

但是当我尝试通过键入 nametab.sh New tab hellooooo 在 iTerm 中命名我的当前选项卡时,没有任何反应。 我也试了nametab.sh hellooooo,但没有任何反应。

你能帮我理解我不明白的地方吗?


更新:

echo TERM=$TERM

返回

TERM=xterm-256color

echo $PATH

返回

.:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:~/dev/bash_scripts

cat ~/dev/bash_scripts/nametab.sh

返回

#!/bin/bash
# A simple script which will name a tab in iTerm
# usage:
# $ nametab NewTabName
echo "trying to rename the current tab to $@"
echo -ne "33]0;"$@"07"
echo "finished"

nametab.sh hellooooo

返回

trying to rename the current tab to helloooo
finished

但选项卡名称始终保持不变。

顺便说一下,选项卡名称显示为

MindRoot (bash)

我正在运行iTerm2。 我尝试在 /etc/bashrc 中完成所有 bash shell 配置。 这样,无论我登录哪个用户帐户,我都会获得相同的bash终端行为。 /etc/bashrc的内容是

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
   return
fi
#PS1='h:W u$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
# ALL OF THE BELOW ADDED BY DEONOMO ON 2011-04-25
# custom prompt
PROMPT_HOSTNAME='MindRoot' 
PROMPT_COLOR='0;35m'
# If I am root, set the prompt to bright red
if [ ${UID} -eq 0 ]; then
PROMPT_COLOR='1;31m'
fi
PS1='[e]1;${PROMPT_HOSTNAME}ae]2;${PROMPT_HOSTNAME}:${PWD}a
e[${PROMPT_COLOR}]
[u@${PROMPT_HOSTNAME} w]n #$ 
[e[m]'
#PS1="e[0;45mw:$ "
# added by Deonomo on 2011/09/12 in order to have textmate work as default editor
export EDITOR='mate -w'
# added by Deonomo on 2012-01-11 in order to start a dev/bash_scripts directory
export PATH="$PATH:~/dev/bash_scripts"

如果你想有一个别名来更改选项卡名称,你实际上可以通过在你的 .profile/.bashrc 文件中定义一个函数来实现,如下所示:

function renametab () {
    echo -ne "33]0;"$@"07"
}

我遇到了同样的问题 - 但我看到选项卡名称在回到原来的样子之前短暂闪烁:外壳和 cwd。事实证明,我有一个环境变量更改了每个 shell 命令的选项卡名称,因此这为我修复了它:

export PROMPT_COMMAND=''

现在:回显 -e "\033];MY_NEW_TITLE\007">

..工作得很好,坚持不懈。

rename_tab () {
    TEXT=$1
    export PROMPT_COMMAND='echo -ne "33]0;${TEXT}07"'
}

这是一个函数。您可以将其添加到您的~/.bashrc(或类似的东西,例如~/.bash_profile(。要重命名选项卡,您可以执行以下操作:

$ rename_tab 'NEW NAME HERE'

相关内容

  • 没有找到相关文章

最新更新