我有以下提示:
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33mCWD:\w | \d | \t | CM: \# | \V\s\033[0m\033[u\]
<\[\033[0;32m\]\u@\h\[\033[0m\]>\$"
每次我输入命令时,它都会在后面输入一个新行。我怎样才能删除它?
输出是:
prompt->ls
a.c b.c d.c
prompt->
我希望它是
prompt->ls
a.c b.c d.c
prompt->
可以做到这一点,同时将初始文本保留在顶部吗?
答案1
如果将整个变量放在一行上,则它不会在提示后添加新行。
在适用于 RHEL 8.3 的 GNU bash 版本 4.4.19 上进行了测试和工作
PS1="\[\033[s\033[0;0H\033[0;41m\033[K\033[1;33mCWD:\w | \d | \t | CM: \# | \V\s\033[0m\033[u\]<\[\033[0;32m\]\u@\h\[\033[0m\]>\$ "
<user@hostname>$ls
a.txt b.txt
<user@hostname>$