Python 使用命令自动重命名端子选项卡

Python 使用命令自动重命名端子选项卡,python,macos,shell,terminal,osascript,Python,Macos,Shell,Terminal,Osascript,我试图在OSX中重命名打开的终端选项卡,但我只能用下面的代码更改终端标题。有没有办法用命令更改选项卡标题?我将osascript与python 2.7一起使用 name = """osascript -e 'tell application "Terminal" to set custom title in selected tab of the front window to "script_1"'""" os.system(name) 手动:Shell>编辑标题(SHIFT+COMMAND

我试图在OSX中重命名打开的终端选项卡,但我只能用下面的代码更改终端标题。有没有办法用命令更改选项卡标题?我将osascript与python 2.7一起使用

name = """osascript -e 'tell application "Terminal" to set custom title in selected tab of the front window to "script_1"'"""
os.system(name)
手动:Shell>编辑标题(SHIFT+COMMAND+I)>选项卡标题

这应该做到:

title='Customized title for TAB'
os.system('echo -n -e "\033]0;{}\007"'.format(title))
这应该做到:

title='Customized title for TAB'
os.system('echo -n -e "\033]0;{}\007"'.format(title))

使用$title对我不起作用,但它确实起了作用:

>>> t = 'echo -n -e "\033]0;%s\007"' % title
>>> t
'echo -n -e "\x1b]0;Customized title for TAB\x07"'
>>> os.system(t)
-e 0
>>> 

使用$title对我不起作用,但它确实起了作用:

>>> t = 'echo -n -e "\033]0;%s\007"' % title
>>> t
'echo -n -e "\x1b]0;Customized title for TAB\x07"'
>>> os.system(t)
-e 0
>>> 

以下是使用键打开inspector、更改标题和关闭inspector的解决方案。因为根据我的研究,在OSX上使用现成的apple脚本无法更改选项卡标题

它工作得很好,所以无需等待苹果发布此选项

tabinspector = """osascript -e 'tell application "System Events" to keystroke "i" using {shift down,command down}'"""
pressstab = """osascript -e 'tell application "System Events" to keystroke Tab'""" 
title = """osascript -e 'tell application "System Events" to keystroke "yourtitlehere"'"""
pressesc = """osascript -e 'tell application "System Events" to key code 53'"""

os.system(tabinspector)
os.system(pressstab)
os.system(title)
os.system(pressesc)

以下是使用键打开inspector、更改标题和关闭inspector的解决方案。因为根据我的研究,在OSX上使用现成的apple脚本无法更改选项卡标题

它工作得很好,所以无需等待苹果发布此选项

tabinspector = """osascript -e 'tell application "System Events" to keystroke "i" using {shift down,command down}'"""
pressstab = """osascript -e 'tell application "System Events" to keystroke Tab'""" 
title = """osascript -e 'tell application "System Events" to keystroke "yourtitlehere"'"""
pressesc = """osascript -e 'tell application "System Events" to key code 53'"""

os.system(tabinspector)
os.system(pressstab)
os.system(title)
os.system(pressesc)

我发现这一个非常有用,因为它不会将不必要的输出打印到标准输出,这与我使用subprocess或os.system进行的实验不同,后者导致控制台中出现不必要的“-e”

import sys
sys.stdout.write("\x1b]2;%s\x07" % 'TAB name')

我发现这一个非常有用,因为它不会将不必要的输出打印到标准输出,这与我使用subprocess或os.system进行的实验不同,后者导致控制台中出现不必要的“-e”

import sys
sys.stdout.write("\x1b]2;%s\x07" % 'TAB name')

它和我的代码做的一样。它更改了终端标题而不是选项卡标题。我在lubuntu linux(LXTerminal 0.1.11)上,它更改了选项卡和活动选项卡中的标题。Osx正在使用不同的终端。我不是这方面的专家,但我修修补补,并让它发挥作用。我想在python中设置一个变量可能会有问题,然后希望shell知道它是一个环境变量。我想这是Osx的问题,不是python的问题,我在Ubuntu中尝试过,它是有效的。但是我认为现在还没有改变标签标题的选项。找出你的终端程序是什么,然后搜索可能控制它的神奇字符串,希望两者都能做同样的事情\033(33八进制,27l)与\x1b(十六进制,也是27)完全相同。两者的意思都是“这是一个转义码”。后跟命令0、标题,然后以字符7终止。也许有些shell不解释八进制,有些则不解释十六进制?它的功能与我的代码相同。它更改了终端标题而不是选项卡标题。我在lubuntu linux(LXTerminal 0.1.11)上,它更改了选项卡和活动选项卡中的标题。Osx正在使用不同的终端。我不是这方面的专家,但我修修补补,并让它发挥作用。我想在python中设置一个变量可能会有问题,然后希望shell知道它是一个环境变量。我想这是Osx的问题,不是python的问题,我在Ubuntu中尝试过,它是有效的。但是我认为现在还没有改变标签标题的选项。找出你的终端程序是什么,然后搜索可能控制它的神奇字符串,希望两者都能做同样的事情\033(33八进制,27l)与\x1b(十六进制,也是27)完全相同。两者的意思都是“这是一个转义码”。后跟命令0、标题,然后以字符7终止。也许有些Shell不解释八进制,有些不解释十六进制?只是更改标题,而不是“tab”标题。两者在mac终端中都不同。只需更改标题,而不是“选项卡”标题。在mac终端中,两者都是不同的。