У меня есть это в моем .profile
(Я запускаю Ubuntu 12.04):
export TERM="xterm-256color"
Переменная кажется не экспортируемой или быть неизменно позже перезаписанной как TERM="xterm"
.
Тест с Gnome Terminal:
$ gnome-terminal --command=sh
$ echo $TERM
> xterm
$ gnome-terminal --command=bash
$ echo $TERM
> xterm
$ gnome-terminal --command=zsh
$ echo $TERM
> xterm
По крайней мере, это не происходит из-за оболочки. Это из-за gnome-terminal
?
Другой тест с Xterm:
$ xterm sh
$ echo $TERM
> xterm
$ xterm bash
$ echo $TERM
> xterm
$ xterm zsh
$ echo $TERM
> xterm
По крайней мере, это не происходит специфически из-за Gnome Terminal, как это - то же с Xterm. Я должен добавить export TERM="xterm-256color"
в профилях оболочки.
У меня была подобная проблема с экспортом LD_LIBRARY_PATH
от .profile
, который всегда перезаписывался (я не помню, как я решил его).
Что перезаписывает/предотвращает экспорт TERM
переменная среды от .profile
, и почему?
После комментария Muru я попробовал это: gnome-terminal --command="[sh/bash/zsh] -l"
и xterm -ls [sh/bash/zsh]
( [sh/bash/zsh]
Я имею в виду замену в свою очередь каждым), для получения оболочки входа в систему (но она не попросила пароль, забавный), и результат отличается: Я добираюсь TERM="xterm-256color"
с Sh и Bash, но не с Zsh, с которым я всегда добираюсь TERM="xterm"
.
~/.profile
обычно выполняется оболочками входа в систему, таким образом, sh
,bash
, и zsh
не обрабатывайте его при нормальном вызове. Вызов их при помощи -l
опция заставляет их войти в оболочки и результаты в определении источника ~/.profile
. zsh
не использует ~/.profile
, но ~/.zprofile
, из-за несовместимостей с другим sh
синтаксис.
Большинство терминалов имеет опцию выполнить оболочки, поскольку вход в систему окружает (по крайней мере, Терминал GNOME, Терминал XFCE4 и Терминатор делают). Можно включить это (при внесении частых изменений в profile
s, или просто выходят из системы и входят в.
Дальнейшее чтение: