TCSH 提示显示有关缺少括号的语法错误

TCSH 提示显示有关缺少括号的语法错误

prompt我已经使用以下代码在我的机器上设置了:

set prompt = " %B%{\033[34m%}`hostname`: %c %D/%w %p :) %b"

它输出我喜欢的定制显示。看起来像 :

自定义提示

但是,当我发出echo $prompt命令时,它会返回missing ].我相信我确实正确地提到了定制手册

答案1

您遇到了 tcsh 的解析怪癖之一。来自tcsh 手册:

变量替换 除非用 ' " ' 括起来或给出 ':q' 修饰符,否则变量替换的结果最终可能会被替换为命令和文件名。

您有一个变量扩展为语法上不正确的文件名替换内容。您可以通过键入echo "$prompt"或 来阻止替换echo $prompt:q

例子:

% set prompt = " %B%{\033[34m%}`hostname`: %c %D/%w %p :) %b"
 host.example.com: ~ 12/Dec 9:46:12am :) echo $prompt:q | cat -v
 %B%{^[[34m%}host.example.com: %c %D/%w %p :) %b

相关内容