OpenVZ Fedora 20 VPSがあり、SSH経由で接続すると、保存されたtermcapファイルが設定されていても$XDG_DATA_HOME/terminfo/x/xterm-termite
読み込まれませんTERMINFO=$XDG_DATA_HOME/terminfo
。 subshell bashを実行すると正常に動作します。それともexec bash
私の最後に追加するとうまく.profile
いきます。
私は見たこの問題そしてそれが同じであるかもしれないと疑いなさい。しかし、/usr/bin
とにかく私はbashバージョンでログインしました
$ echo $BASH
/usr/bin/bash
$ which bash
/usr/bin/bash
また、VPSでUbuntu 13.10を試してみましたが、同じ問題が発生しました。
Patrickの質問は本当に私を考えさせ、VPSの基本的なオペレーティングシステムがREHLであることを知っています。これはどのような方法で影響を与えますか?
というファイルを受け取りました。environment
私からディレクトリが.profile
。$TERMINFO
terminfo
XDG_DATA_HOME
$ echo $TERMINFO
/home/evan/.local/share/terminfo
$ echo $XDG_DATA_HOME
/home/evan/.local/share
$ find $TERMINFO
/home/evan/.local/share/terminfo
/home/evan/.local/share/terminfo/x
/home/evan/.local/share/terminfo/x/xterm-termite
$ echo $TERM
xterm-termite
これは私のLinode VPSでうまく機能します。
答え1
Bashは、起動時(ほとんどのプログラムと同様)または変数が変更されたときにのみterminfoデータベースエントリをロードしますTERM
。TERMINFO
変数の変更はすぐには適用されません。これは、terminfoエントリがロードされたときにのみ使用され、再ロードをトリガーしません。
これを実行すると、現在の値に基づいて端末エントリをロードするexec bash
新しいbashインスタンスが起動します。TERM
TERMINFO
に割り当ててterminfoデータベースを再ロードできますTERM
。 Bashは最適化しTERM=$TERM
てデータを再ロードしないため、中間値を使用する必要があります。
TERMINFO=…
# Reload the terminfo entry to take the new value of $TERMINFO into account
old_TERM=$TERM; TERM=dumb; TERM=$old_TERM; unset old_TERM