Я использую 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>
Переменная SHELL (наряду с некоторыми другими переменными, такими как HOME и USER) устанавливается процессом, который регистрирует вас в системе. Он устанавливается на значение оболочки оболочки, установленное в базе данных passwd (/ etc / passwd). Он не предназначен для отражения оболочки, которую вы используете в настоящее время.
Экраниспользует переменную SHELL, чтобы определить, какая оболочка будет работать внутри экрана, поэтому вы можете переопределить ее, запустив, например,
SHELL=/bin/bash screen
И если вы хотите, чтобы bash была вашей оболочкой для входа в систему вместо zsh, вы можете запустить команду chsh
( ch ange sh ell) как ваш пользователь.