这个用于命名iTerm标签的脚本如何工作?

时间:2012-01-11 16:43:37

标签: bash shell iterm

我正在尝试命名我的iTerm标签并找到this link.这是该帖子的相关部分:

  

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

$ nametab New tab name
     

如果您想自己使用,请输入以下代码:

#!/bin/bash

# A simple script which will name a tab in iTerm
# usage:
# $ nametab New tab name

echo -ne "\033]0;"$@"\007"

我创建了一个目录$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 "\033]0;"$@"\007"
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}\a\e]2;${PROMPT_HOSTNAME}:${PWD}\a\
\e[${PROMPT_COLOR}\]\
[\u@${PROMPT_HOSTNAME} \w]\n \#\$ \
\[\e[m\]'

#PS1="\e[0;45m\w:$ "

# 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"

3 个答案:

答案 0 :(得分:5)

如果您想要更改选项卡名称的别名,您可以通过在.profile / .bashrc文件中定义一个函数来实际执行此操作:

function renametab () {
    echo -ne "\033]0;"$@"\007"
}

答案 1 :(得分:3)

我遇到了同样的问题 - 但我看到标签名称在回到原来的状态之前会暂时闪现:shell和cwd。事实证明我有一个环境变量更改每个shell命令的选项卡名称,所以这为我修复了它:

export PROMPT_COMMAND=''

现在:echo -e“\ 033]; MY_NEW_TITLE \ 007”

..工作正常并且仍然​​存在。

答案 2 :(得分:0)

rename_tab () {
    TEXT=$1
    export PROMPT_COMMAND='echo -ne "\033]0;${TEXT}\007"'
}

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

$ rename_tab 'NEW NAME HERE'