linux 环境中 Rstudio 的系统函数使用
system function usage from Rstudio in linux environment
我的 R 脚本中有以下行,当我在 Linux 环境中从命令行调用 R 时,它正在工作,
system('spectre run.scs -f psfascii +l mylog.txt >> /dev/null')
但是当我通过从命令行启动 RStudio 运行 这个脚本时,同一行不起作用,
spectre 是一个有效的命令,它在调用 R 时有效,但在 rstudio 中无法识别该命令。
注意事项:spectre 命令来自除 R 之外的外部模块,在调用 R 和 rstudio 之前,我已将其加载到 linux 终端中,如下所示。
使用 R 和 RStudio 的路径编辑
当我从命令行运行 which spectre 并检查它的路径时,
> Sys.getenv("PATH")
[1] "/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin"
但是当我在 R studio 中检查路径时,
> Sys.getenv("PATH")
[1] "/tool/pandora64/.package/qt-5.5.1/bin:/tool/pandora64/.package/R-3.4.3/bin:/tool/pandora64/.package/rstudio-99.9.9/app/bin:/bin:/usr/bin:/tool/eda/apps/cadenceMMSIM/13.11.292:/tool/eda/apps/cadenceMMSIM/13.11.292"
@r2evans 在评论区给出了答案,
通过在命令行中从 R 环境复制路径来更改 Rstudio 中的路径,
Sys.setenv(PATH="/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin")
我的 R 脚本中有以下行,当我在 Linux 环境中从命令行调用 R 时,它正在工作,
system('spectre run.scs -f psfascii +l mylog.txt >> /dev/null')
但是当我通过从命令行启动 RStudio 运行 这个脚本时,同一行不起作用,
spectre 是一个有效的命令,它在调用 R 时有效,但在 rstudio 中无法识别该命令。
注意事项:spectre 命令来自除 R 之外的外部模块,在调用 R 和 rstudio 之前,我已将其加载到 linux 终端中,如下所示。
使用 R 和 RStudio 的路径编辑
当我从命令行运行 which spectre 并检查它的路径时,
> Sys.getenv("PATH")
[1] "/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin"
但是当我在 R studio 中检查路径时,
> Sys.getenv("PATH")
[1] "/tool/pandora64/.package/qt-5.5.1/bin:/tool/pandora64/.package/R-3.4.3/bin:/tool/pandora64/.package/rstudio-99.9.9/app/bin:/bin:/usr/bin:/tool/eda/apps/cadenceMMSIM/13.11.292:/tool/eda/apps/cadenceMMSIM/13.11.292"
@r2evans 在评论区给出了答案,
通过在命令行中从 R 环境复制路径来更改 Rstudio 中的路径,
Sys.setenv(PATH="/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin")