繁体   English   中英

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

[英]How do I rename a window via a prompt command in iTerm2?

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

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

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

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

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

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

alias jnb='echo -ne "\033]0;Jupyter Notebook\007"; jupiter notebook'

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

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。 如果有人可以解释这种行为,我将非常感激。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM