背景:我将RVM更新到最新版本和.rvmrc,这样我就可以指导RVM使用项目特定的gemset。但现在它要求bash shell是一个登录shell。所以我通过ubuntu终端的编辑|偏好来完成。这非常好。
然而,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
将其添加到您的bashrc脚本中:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
为我工作。
(您仍然需要:PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
希望它能帮助
终端插件是用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)