我对Bash经验不足。我将在一个桌面上使用多个终端,因此认为标记终端以使我知道在哪里运行是一个好主意。
我正在运行CentOS 7,并且作为操作系统does not support的一部分的默认终端直接修改了“终端标签”,因此我一直在使用以下命令对其进行修改:
PROMPT_COMMAND ='echo -ne“ \ 033] 0; 标题进入此处 \ 007”’
我在互联网上找到了这段代码,此命令可以正常运行。它可以满足我的要求。但是,由于我使用多个终端,所以我认为将其放在自定义函数中并提供该文件的源代码,以便可以使用变量名可能是个好主意。
这就是我所做的。
termName(){
PROMPT_COMMAND='echo -ne "\033]0;$1\007”’
}
我将上面的代码放入了位于我的主目录中的名为“ .aliases”的文件中,并将其作为来源。然后,我写道:
termName ABC
但是,什么也没发生。相反,我的终端被重命名为Terminal。有人可以指出我要去哪里了吗?
PS:我确实在.bashrc文件中放入了“ source〜/ .aliases”,所以我确实知道该文件是为我打开的每个终端提供的。
答案 0 :(得分:2)
PROMPT_COMMAND
只是保存应在每次显示提示时运行的代码段的变量。真正改变您的终端的代码是echo
命令,这是您在termName
函数中所需要的。
termName () {
echo -ne "\033]0;$1\007"
}
稍微清晰的定义将改用printf
:
termName () {
printf '\033]0;%s\007' "$1"
}
将该定义添加到标准.bashrc
文件中,以确保在您启动的任何交互式bash
会话中都已定义。
答案 1 :(得分:0)
也许您没有正确设置转义序列?另外,如何尝试从PROMPT_COMMAND内部修改PS1?