鉱山に次のコマンドを追加しました~/.tcshrc
。
echo "\033]0;${PROJECT_NAME}\007"
less
新しく開いたコマンドがgnome-terminal
正しく機能しませんでした。ただし、more
コマンドは影響を受けません。
less
コマンドを実行しようとすると、次の内容が表示されます。
less log
ESC]0;MYPROJ^G
log (END)
答え1
パイプまたは同様のスクリプトを使用して出力をパイプless
するように設定できます。環境変数および/またはその設定がファイルlesspipe
で使用されていると、この現象が発生する可能性があります。出力がパイプデータと混在し、混乱を招きます。LESSOPEN
LESSCLOSE
~/.lesskey
~/.tcshrc
~/.tcshrc
TTYなしでシェルに対して実行されたときに追加したコマンドを実行しているようです。これにより発生した問題が発生し、他の多くのコマンドで問題が発生する可能性がscp
ありますrsync
。画面出力を生成するコマンドをユーザーまたは同様のシェル起動スクリプトに追加する場合は、コマンドが対話式および/または.tcshrc
TTYを持つセッションでのみ実行されるように、常にコマンドを条件付きで作成する必要があります。
この問題を解決する最も簡単な方法は、出力を次のよう~/.tcshrc
に制限することです。インタラクティブシェルセッション専用です。シェルプロンプトが表示されます。出力を条件付きで作成できます。つまり、追加した行を次の.tcshrc
ように置き換えることができます。
if ($?prompt) then
echo "\033]0;${PROJECT_NAME}\007"
fi
カスタムプロンプトを設定する前にそれを追加してください。
別のアプローチは、まずTTYの有効性を自動的にテストすることです。
tty -s && echo "\033]0;${PROJECT_NAME}\007"