在Mac OS X中更改终端标题


39

如何在Mac OS X中随意更改“终端”窗口的标题?我已经看到了这个问题这个魔术包装的东西,但是认为它只是一个简单的Mac OS X命令。


应该注意的是,没有关于OS X的特定内容-答案几乎可以在任何终端上使用。
Andrew Aylett

那是Bash特有的吗?
Dan Rosenstark'2

@Andrew Aylett,所以我放入答案中的脚本(如下)也可以在linux发行版上使用?
丹·罗森斯塔克

是的,它应该在使用unix-y终端的任何地方(带有sh派生的外壳)工作。
Andrew Aylett '02

Answers:


48

文章将告诉您如何。

本质上,您使用回显在屏幕上的字符序列来通知终端应显示的标题。

title='My first title'
echo -n -e "\033]0;$title\007"

在上面的示例中,无论变量title设置为什么,而成为终端的标题。当然,您只需在字符串中包含标题即可回显,例如:

echo -n -e "\033]0;My first title\007"

但是第一种方法使它的使用和/或以后扩展稍微容易一些。


优秀的。您能否echo -n -e "\033]0;$1\007"在答案中包含示例脚本(例如?),以便我将其标记为最佳答案?
Dan Rosenstark'2

2
printf可能更可靠:(在所有系统,shell甚至shell选项中printf "\033]0;%s\007" "$title_variable"echo的各种选项和行为都不相同)此外,bash中的变量分配在等号前后不应有空格。
克里斯·约翰森

1
我在函数中使用了$ *,因此不必引用标题字符串。
BeepDog

有没有办法从C程序中更改标题?我正在考虑的程序正在基于ncurses.h运行动画,所以我不确定如何向终端回显:-(
phs 2015年

OK:只是fprintf(stdout,..)有效。在问之前我应该​​先尝试一下。
ph 2015年

34

将以下内容添加到您的文件~/.profile中将获得相同的效果:

# function for setting terminal titles in OSX
function title {
  printf "\033]0;%s\007" "$1"
}

然后快速title 'et voila'将您的所有标签整理出去。


如果.profile中有许多功能,为什么会出现问题?有限制吗?
tgkprog 2013年

1
IDK为什么
这么做

2
或:alias title="printf '\033]0;%s\007'"
kenorb

export alias title="printf '\033]0;%s\007'"
Mwayi

您也可以使用添加它sudo nano /etc/bashrc。这应该为所有用户运行。重新启动终端会话或执行source /etc/bashrc应用更改。
尤金·库拉布霍夫

8

混音Dan MgG的答案:

echo -n -e "\033]0;$1\007"

将其存储在名为/ usr / bin / title的文件中(使用sudo!),并将其chmod更改为+ x。然后您可以在任何地方键入

title 'Trying to Figure This GIT Thing Out'

你会得到一个漂亮的小标题。

(如果我理解正确,那么如果您不在OSX上,语法可能会有所不同)


如果您使用的是这些较新版本的OS X之一,则可以/usr/local/bin/title改用。
Samy Bencherif

2

作为基于sh的命令行解决方案的替代方法,OS X Terminal应用程序具有按以下方式更改标题的首选项:在Terminal-> shell菜单下,有一个“ edit title”选项,选择该选项即可更改标题。容易。


1

在OS X上,终端首选项存储在中~/Library/Preferences/com.apple.Terminal.plist

终端的标题存储在WindowTitle首选项中。


0

谢谢你 我刚刚在.bashrc中添加了一个函数:

    function stit() {
    echo -n -e "\033]0;$1\007"
}

我认为“ stit” =“ set_title”的便捷快捷方式。现在,当我想动态设置窗口的标题时,键入:

stit "[new window title]"

0

标为“最佳答案”的回复效果很好...这就是我所做的...

tell application "Terminal"
    activate
    do script "echo -n -e \"\\033]0;WorkerTab1\\007\"; cd $HOME/folder1"
end tell

这会将新选项卡的名称设置为WorkerTab1,然后执行其他命令,例如“ cd”等。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.