PS1提示中的[和\]是什么意思?

时间:2014-09-01 14:38:39

标签: bash prompt ps1 non-printing-characters

根据man bash,在PS1环境变量中(定义shell提示符):

\[     begin a sequence of non-printing characters, which could be used to embed a terminal control sequence into the prompt
\]     end a sequence of non-printing characters

根据我见过的各种例子,我应该用\[\]包围非打印字符序列 - 但它似乎并不是我是否包括它们会有所不同!

例如:

export PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\h \[\e[33m\]\w\[\e[0m\]\n[\t]\$ '

似乎与以下方面没有区别:

export PS1='\e]0;\w\a\n\e[32m\u@\h \e[33m\w\e[0m\n[\t]$ '

(即相同但删除\[\]。)

那么以这种方式封装非打印字符序列的优点是什么?是输出到哑终端(我从不需要这样做),以便可以忽略非打印字符? (据推测,PS1在非交互式会话中会被忽略,因此我想在编写脚本时不会这样做。)

0 个答案:

没有答案