如何在ruby脚本中重新加载.profile

如何在ruby脚本中重新加载.profile,ruby,linux,Ruby,Linux,我正在使用Ruby 2,我为一些环境变量提供资源,并将它们放入~/.profile中,然后在Ruby脚本中重新加载.profile,如下所示: #!/usr/bin/ruby env `source ~/.profile` 但我找不到源命令。如何在ruby脚本中重新加载.profile 我也试过: #!/usr/bin/ruby env `/bin/bash -c 'source ~/.profile'` 但是没有成功。简言之,你不能 源环境变量仅在子流程中有效,不会影响父流程 唯一的方法是

我正在使用Ruby 2,我为一些环境变量提供资源,并将它们放入~/.profile中,然后在Ruby脚本中重新加载.profile,如下所示:

#!/usr/bin/ruby env
`source ~/.profile`
但我找不到源命令。如何在ruby脚本中重新加载.profile

我也试过:

#!/usr/bin/ruby env
`/bin/bash -c 'source ~/.profile'`
但是没有成功。

简言之,你不能

源环境变量仅在子流程中有效,不会影响父流程


唯一的方法是使用
bash-c“source~/.profile;env”
返回环境变量,然后在脚本中解析并设置它们。

我不想在脚本中使用变量,我只想永久性地在父shell中设置环境变量,这样当脚本完成时,这些变量应该对父进程可用。我可以这样做吗?不,不能从子进程更改父进程的环境变量。