次のcシェルスクラップを考えてみましょう。
[<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* ファイルでインターネット検索と greping を実行しても回答は出ませんでした。
どんなアイデアがありますか?
答え1
おめでとうございますさんのコメントが答えを与えました。
エラーは実際にprecmd
エイリアスにあります。
precmd echo '\033]30;<my-host-name>\007\c'
エイリアシングをオフにすると、明らかに問題のある線が消え、そこからさらに深く入るのが簡単です。
からman csh
:
自動、定期、時間イベント(+)
これビープ音コマンド、CWDコマンド、定期的、辞書コマンド、ポストコマンドと作業コマンドシェルがベルを鳴らすとき、作業ディレクトリが変更されたとき、各期間の間、各プロンプトの前にコマンドを実行するように特別なエイリアスを設定できます。各コマンドを実行する前に、各コマンドが実行された後、ジョブが開始されるか、または前景として表示されます。
ありがとうございます。