.profile 中的命令不起作用

.profile 中的命令不起作用

在我的 .profile 中我有以下命令,

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

现在,为了获得我想要的行为,我必须source ~/.profile在终端中输入。我希望这是自动的(因为它在 .profile 中),但事实并非如此。有什么想法吗?

当我登录时,我的 .profile 正在被执行(用 测试过export foo=bar)。

答案1

~/.profile不仅由 bash 使用,还由其他 posix shell 使用。当您在 Ubuntu 中以图形方式登录时,~/.profile会从 获得源代码sh,而没有[[source

编辑

在对这个 rvm 内容进行一些 google 搜索之后,发现它似乎是一个 bash 脚本,因此切换到 posix sh 语法将不起作用;该脚本根本不属于~/.profile

解决这个问题的一种方法是改为从源中获取它~/.bashrc。 缺点是,无论它设置什么环境变量,都只能用于 bash shell。 例如,依赖于这些环境变量的命令不能直接从启动器运行。

相关内容