[英]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.