别名在qsub之后不起作用

时间:2014-01-05 12:37:49

标签: r bash qsub

我在我的主文件夹下安装了R,并且我希望在向集群提交作业时调用新的R.群集节点都安装了CentOS。

这是我在.bash_profile和.bashrc中的配置:

if [ `lsb_release -i|cut -c17-20` == 'Cent' ] ; then
    alias R='/home/XXX/R-3.0.2/bin/R'
    alias Rscript='/home/XXX/R-3.0.2/bin/Rscript'
fi

我在.bash_profile中添加了以下内容:

if [ -f ~/.bashrc ]; then
    source ~/.bashrc
fi

我还将此添加到提交的脚本中。

source $HOME/.bash_profile

我尝试使用qsub -I,它完美无缺。

但是,在我提交作业后,which R仍显示原始路径!

如何正确设置环境?

1 个答案:

答案 0 :(得分:2)

别名不会影响which命令,例如:

$ which R
/usr/bin/R
$ alias R=/bin/date
$ R
Sun Jan  5 13:40:54 CET 2014      # as you see the alias works
$ which R                         # `which R` still returns the original path
/usr/bin/R

我认为您不想使用别名,而是希望将/home/XXX/R-3.0.2/bin添加到PATH

PATH="/home/XXX/R-3.0.2/bin:$PATH"

在此之后,如果R中存在Rscript/home/XXX/R-3.0.2/bin,则:

  • which R应该返回/home/XXX/R-3.0.2/bin/R
  • which Rscript应该返回/home/XXX/R-3.0.2/bin/Rscript

首先在/home/XXX/R-3.0.2/bin中找到它们,然后在其他$PATH中的任何其他目录之前找到它们。