我想在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中断笔记本会话之后
在笔记本会话打开之前,如何重命名窗口标题?
答案 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。如果有人可以解释这种行为,我将非常感激。