Как автоматически запустить / bin / bash --login автоматически во встроенном терминале gedit в ubuntu 10.04?

Предыстория: я обновил RVM до последней версии и .rvmrc, чтобы я мог указать rVM на использование gemset конкретного проекта. Но теперь требуется, чтобы оболочка bash была оболочкой входа в систему. Итак, я сделал это через предпочтение Правка | Терминала ubuntu. Это прекрасно работает.

Однако встроенный терминал gedit по-прежнему не «запускает команду как оболочку входа в систему». Но я могу решить эту проблему, набрав "/ bin / bash --login" во встроенном терминале gedit после его запуска.

Это нормальный обходной путь, но я чувствовал, что должен быть способ сделать это автоматически.

Я попытался добавить следующие варианты в конец файла ~ / .bashrc, и это вроде как сработало, но мне пришлось нажать ctrl-c, чтобы вернуться в режим подсказки. Другой побочный эффект, обычный терминал, теперь также требует, чтобы я нажал ctrl-C, чтобы вернуться в режим подсказки.

/bin/bash -l -i

Как я могу указать файлу ~ / .bashrc выполнить эту команду и вернуться в режим подсказки, не нажимая каждый раз ctrl-C? Или любым другим способом достичь этой цели.

Заранее спасибо.

p.s. Я также разместил на askubuntu

https://askubuntu.com/questions/226694/how-to-change-gedit-embedded-terminal-to-be-run-command-as-login-shell.


person GeorgeW    schedule 10.12.2012    source источник


Ответы (2)


Добавьте это в свой сценарий bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Работал у меня.

(вам еще нужно: PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

Надеюсь, это поможет

person damau    schedule 08.03.2013

Плагин терминала написан на Python, поэтому вы можете попытаться настроить его. Обратите внимание, что если вы редактируете установленные файлы напрямую, ваши изменения будут перезаписаны при обновлении пакета.

Около 90 строки файла "/usr/lib/gedit/plugins/terminal.py" вы найдете строку, которая выглядит следующим образом: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell()], None, GLib.SpawnFlags.SEARCH_PATH, None, None)

Добавьте аргументы в оболочку внутри списка: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell(), "-l", "-i"], None, GLib.SpawnFlags.SEARCH_PATH, None, None)

person Community    schedule 10.12.2012
comment
спасибо за предложение. Однако в моем ubuntu 10.04 нет того же файла, что и у вас. - person GeorgeW; 11.12.2012
comment
он находится в / usr / lib / gedit-2 / plugins и не нашел того же кода, что и у вас. Спасибо за попытку. - person GeorgeW; 11.12.2012
comment
Ребята, этот способ тоже работает, но предложенный @damau работает лучше! - person asiniy; 31.03.2014