csh:$prompt 之外是否有提示符?

csh:$prompt 之外是否有提示符?

考虑这个 c-shell 抓取:

[<my-user>@<my-host> ~]>echo $SHELL
/bin/csh
\033]30;<my-host-name>\007\c
[<my-user>@<my-host> ~]>set | grep prompt
prompt  [%n@%m %~]%#
prompt2 %R? 
prompt3 CORRECT>%R (y|n|e|a)? 
\033]30;<my-host-name>\007\c
[<my-user>@<my-host> ~]>
\033]30;<my-host-name>\007\c

(用户和主机的身份被屏蔽以保护无辜者)

我不知道\033]30;<my-host-name>\007\c每行后面的内容从哪里来,以及如何让它消失。

取消设置 $prompt* 变量,在 .csh* 文件中进行谷歌搜索和 grep 没有得到任何答案。

有任何想法吗?

答案1

@斯特凡·查泽拉斯的评论让我找到了答案。

错误确实出在precmd别名上:

precmd  echo '\033]30;<my-host-name>\007\c'

取消锯齿显然会让有问题的线消失,从那里深入下去是轻而易举的事。

man csh

自动、周期性和定时事件(+)

蜂鸣命令,CWD命令,周期性的,预命令,后命令, 和作业命令可以设置特殊的别名,分别在shell想响铃时、工作目录改变时、每隔tperiod分钟、每次提示之前执行命令,在执行每个命令之前,在执行每个命令之后,以及当作业启动或进入前台时。

谢谢。

相关内容