根据我原来的问题,既没有设置PS1也PROMPT_COMMAND没有任何影响。
仅在命令提示符下使用命令,如何更改当前终端选项卡的标题?
很多帖子都这么建议:
echo -en "\033]0;New terminal title\a"
Run Code Online (Sandbox Code Playgroud)
但它什么也不做。
当前的答案都不起作用(有些不回答问题),所以为了清楚起见:
此外,该PROMPT_COMMAND变量未在我的终端会话中设置。如果我设置它:
PROMPT_COMMAND='echo -en "\033]0;New terminal title\a"'
Run Code Online (Sandbox Code Playgroud)
它没有效果。
什么是正确的命令?
仅供参考,输出uname -a为:
Linux d136172 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:36:28 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
小智 34
来自@Maythux,这个适用于我需要忽略终端上的自动提示当前目录。
PROMPT_COMMAND='echo -en "\033]0;New terminal title\a"'
Run Code Online (Sandbox Code Playgroud)
使用以下命令更改“新终端名称”上的字符串$("pwd"):
PROMPT_COMMAND='echo -en "\033]0; $("pwd") \a"'
Run Code Online (Sandbox Code Playgroud)
即使您添加新选项卡,这也会自动更改标题。
我使用下面看起来更好的设置,您也可以玩bash编程并设置自己的。
PROMPT_COMMAND='echo -en "\033]0;$(whoami)@$(hostname)|$(pwd|cut -d "/" -f 4-100)\a"'
Run Code Online (Sandbox Code Playgroud)
将此设置添加到您的~/.bashrc.
Wil*_*llC 21
从https://askubuntu.com/a/774543/455406,一个特定于 bash 的解决方案是创建一个自定义函数(参见例如这个 how-to),如
# function to set terminal title
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
Run Code Online (Sandbox Code Playgroud)
这允许你打电话 set-title <name you want to set it to>
mur*_*uru 11
当PS1设置标题时,任何尝试使用命令设置标题或PROMPT_COMMAND将失败,因为在所有这些尝试之后都会打印提示。出于这个原因,我更喜欢在测试标题 ( PS1=$; unset PROMPT_COMMAND)时保留一个简单的提示。
很可能PROMPT_COMMAND已设置并且每次显示提示时都会覆盖您选择的标题。尝试取消设置,然后发出标题命令:
PROMPT_COMMAND=
echo -en "\033]0;New terminal title\a"
Run Code Online (Sandbox Code Playgroud)
小智 5
这个线程可能有点旧,但这里有一个对我有用的解决方案:
https://blog.programster.org/ubuntu-16-04-set-terminal-title
只需编辑您的 $HOME/.bashrc 文件并添加以下函数:
set-title(){
ORIG=$PS1
TITLE="\e]2;$@\a"
PS1=${ORIG}${TITLE}
}现在,每当您想设置终端的标题时,只需输入如下内容:
set-title "my awesome terminal title"
| 归档时间: |
|
| 查看次数: |
143641 次 |
| 最近记录: |