Prompt

TCSH 提示顯示有關缺少括號的語法錯誤

  • March 17, 2020

我已經prompt使用以下程式碼在我的機器上設置了:

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

它輸出我喜歡的自定義顯示。看起來像 :

自定義提示

但是,當我發出echo $prompt命令時,它會返回missing ]. 我相信我確實正確地參考了定製手冊

您遇到了 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

引用自:https://unix.stackexchange.com/questions/173730