考虑这个 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分钟、每次提示之前执行命令,在执行每个命令之前,在执行每个命令之后,以及当作业启动或进入前台时。
谢谢。