首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提示字符串中的Bell和转义字符

提示字符串中的Bell和转义字符
EN

Unix & Linux用户
提问于 2015-06-09 09:56:21
回答 1查看 5.4K关注 0票数 8

我的提示字符串是使用以下语句打印的,

代码语言:javascript
复制
printf '\033]0;%s@%s:%s\007' user host /home/user

为什么它需要转义字符(\033)和钟形字符(007)?当我手动运行相同的命令时,它什么也不打印。

当我移除转义字符并发出命令时,

代码语言:javascript
复制
printf '%s@%s:%s' user host /home/user

印出来了,

代码语言:javascript
复制
user@home:/home/user

更容易理解。

那么,转义字符、\033007如何转换为shell提示符字符串呢?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2015-06-09 10:31:25

只有\033是转义,它启动转义序列直到并包含;\033]0;。这将启动一个字符串,该字符串设置终端标题栏中的标题,该字符串由\007特殊字符终止。

请参见man console_codes

代码语言:javascript
复制
   It accepts ESC ] (OSC) for the setting of certain resources.  In  addi‐
   tion  to  the ECMA-48 string terminator (ST), xterm(1) accepts a BEL to
   terminate an OSC string.  These are a few of the OSC control  sequences
   recognized by xterm(1):

   ESC ] 0 ; txt ST        Set icon name and window title to txt.

您没有看到任何更改,可能是因为您的提示在返回提示时将标题设置为默认的标题字符串。尝试:

代码语言:javascript
复制
 PROMPT_COMMAND= ; printf '\033]0;Hello World!\007'
票数 5
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/208436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档