Как мне начать bash с тире? - PullRequest
0 голосов
/ 20 октября 2018

Я работаю на сервере Ubuntu, и у меня нет прав root.Оболочка по умолчанию - dash.Когда я пытаюсь изменить оболочку по умолчанию, она говорит, что у нее нет разрешения.

user@host:~$ chsh -s "which zsh"
You may not change the shell for 'binjie'.

Проблема с разрешением не может быть решена, поэтому я обращаюсь к ~/.profile для запуска bash при каждом входе в системуКогда я добавляю echo something к ~/.profile, это выполняется.Но когда я добавляю exec -c bash к ~/.profile, после того, как я вошел в систему через SSH, оболочка потеряла ответ.После того как я нажал Ctrl-C соединение было закрыто.Я очень смущен.Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 20 октября 2018

Хорошо. Я нахожу решение в руководстве по dash:

Оболочка входа в систему сначала читает команды из файлов / etc / profile и .profile, если они существуют.Если переменная среды ENV установлена ​​при входе в интерактивную оболочку или установлена ​​в .profile оболочки входа в систему, оболочка затем читает команды из файла, названного в ENV.Поэтому пользователь должен помещать команды, которые должны выполняться только во время входа в систему, в файл .profile, а также команды, которые выполняются для каждой интерактивной оболочки внутри файла ENV.Чтобы установить переменную ENV для какого-либо файла, поместите следующую строку в свой .profile вашего домашнего каталога ENV=$HOME/.shinit; export ENV, подставив вместо '.shinit' любое имя файла, который вы пожелаете.

Но все же может кто угоднообъясните мне, почему добавление exec -c bash непосредственно к .profile не будет работать?

...