簡體   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