Когда переменная $ SHELL не меняется при переключении оболочки

Я использую zsh по умолчанию.

Но когда я нахожусь в моей оболочке zsh, я ввожу 'bash', чтобы переключиться на bash, почему переменная $ SHELL не меняется?

Могу ли я заставить экран использовать любую оболочку, которую я выполнил прямо перед выполнением команда 'screen'?

zsh % screen
<the shell is zsh>

zsh % bash
bash $ screen
<the shell is still bash, can I make screen to automatically start bash here>
3
задан 16 May 2013 в 18:44

1 ответ

Переменная SHELL (наряду с некоторыми другими переменными, такими как HOME и USER) устанавливается процессом, который регистрирует вас в системе. Он устанавливается на значение оболочки оболочки, установленное в базе данных passwd (/ etc / passwd). Он не предназначен для отражения оболочки, которую вы используете в настоящее время.

Экран

использует переменную SHELL, чтобы определить, какая оболочка будет работать внутри экрана, поэтому вы можете переопределить ее, запустив, например,

SHELL=/bin/bash screen

И если вы хотите, чтобы bash была вашей оболочкой для входа в систему вместо zsh, вы можете запустить команду chsh ( ch ange sh ell) как ваш пользователь.

0
ответ дан 16 May 2013 в 18:44

Другие вопросы по тегам:

Похожие вопросы: