如何在ubuntu 10.04上的gedit嵌入式终端中自动运行“/ bin / bash --login”?

时间:2012-12-10 15:53:12

标签: bash ubuntu terminal gedit

背景:我将RVM更新到最新版本和.rvmrc,以便我可以指示rVM使用项目特定的gemset。但它现在要求bash shell是一个登录shell。所以我通过ubuntu终端的Edit |首选项做到了这一点。这完全没问题。

然而,gedit的嵌入式终端仍然不是“作为登录shell运行命令”。但是我可以通过在gedit的嵌入式终端上输入“/ bin / bash --login”来解决这个问题。

这是一个很好的解决方法,但我觉得必须有一种自动执行此操作的方法。

我尝试将以下变体添加到〜/ .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

2 个答案:

答案 0 :(得分:5)

将此添加到您的bashrc脚本:

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

为我工作。

(您仍然需要:PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

希望有所帮助

答案 1 :(得分:1)

终端插件是用Python编写的,因此您可以尝试自定义它。请注意,如果直接编辑已安装的文件,则在更新软件包时将覆盖您的更改。

在“/usr/lib/gedit/plugins/terminal.py”文件的第90行附近,您会找到如下所示的行: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell()], None, GLib.SpawnFlags.SEARCH_PATH, None, None)

将参数添加到列表中的shell: self._vte.fork_command_full(Vte.PtyFlags.DEFAULT, None, [Vte.get_user_shell(), "-l", "-i"], None, GLib.SpawnFlags.SEARCH_PATH, None, None)