如何通过iTerm2中的提示命令重命名窗口?

时间:2019-01-21 10:44:50

标签: bash iterm2

我想在iTerm2中打开一个终端会话,并发送文本以将窗口标题重命名为“ Jupyter Notebook”,然后打开Jupyter Notebook:

export PROMPT_COMMAND='echo -ne "\033]0;Jupyter Notebook\007"';  VAR="jupyter notebook"; $VAR

但是,上述命令将首先打开Jupyter Notebook,然后 将终端标题重命名为“ Jupyter Notebook” 在我使用CMD-C中断笔记本会话之后

在笔记本会话打开之前,如何重命名窗口标题?

2 个答案:

答案 0 :(得分:1)

请勿使用https://twitter.com/username执行此操作。它仅用于更新提示或窗口标题以获取上一条命令(例如PROMPT_COMMAND)中所做的更改。在命令完成并且外壳程序将要打印下一个提示之前,它不会执行-这就是cd是名称的原因。

使用别名或函数来更新标题并运行命令:

PROMPT

答案 1 :(得分:0)

通过创建另一个环境变量来解决:

TITLE='echo -ne "\033]0;Jupyter Notebook\007"'; $TITLE; VAR="jupyter notebook"; $VAR

但是我仍然不了解bash的行为。如果我尝试在运行之前设置一个标题,例如Apache Spark shell,那么bash会忽略echo命令并适当地启动一个Spark shell:

echo -ne "\033]0;Apache Spark\007"; spark-shell
Last login: Tue Jan 22 11:54:15 on ttys001
MacBook:directory user$ 'echo -ne "\033]0;Apache Spark\007"'; spark-shell
2019-01-22 12:25:25 WARN  NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".

显然,echo命令之后的命令可以覆盖echo。如果有人可以解释这种行为,我将非常感激。