当前位置: 首页 > 面试题库 >

如何让R读取我的环境变量?

姬弘文
2023-03-14
问题内容

我在EC2竞价型实例上运行R,并且需要R终止实例并在脚本运行后取消竞价请求。

为此,我在环境变量中设置了“请求ID” /.bashrc,我的计划是在脚本准备好后将以下代码简单地调用到R中

system("ec2-cancel-spot-instance-requests $SIR")

我遇到的问题是R无法“看到”我env从外部R 键入时看到的相同环境变量,因此该命令无法正常工作。

我已经检查了一下,如果我将环境变量设置为/etc/environmentR,就可以看到这些变量,但这是另一个问题。由于这些变量是动态的(每次创建竞价型实例时,实例ID和请求ID都是不同的),因此我正在运行脚本以以下形式创建它们:

export SIR=`cat /etc/ec2_instance_spot_id.txt`

该文件包含动态ID的位置

那么,如何将“动态”环境变量插入/etc/environment?或者,如何使R读取位于的环境变量/.bashrc

朝正确方向的任何提示将不胜感激!


问题答案:

你想Sys.getenv()Sys.getenv("PATH"),说。

或者以您的示例为例

SIR <- Sys.getenv("SIR")   
system(paste("ec2-cancel-spot-instance-requests",  SIR))

至于在启动时设置变量,请参阅help(Startup)了解~/.Renvironment



 类似资料:
  • 问题内容: 这可能是一个非常简单的问题,但是我找不到谷歌的答案,所以我很着急-因此,我希望能使用快速的示例代码。 我想使用Java代码在OS上读取一个环境变量。我已经尝试过了System.getProperty,但这似乎只对-D直接为JVM提供的变量有效。 我的Java代码如何读取OS变量? 问题答案: 尝试System.getenv(字符串名称)

  • 我正在尝试使用在我的Quarkus应用程序中读取环境变量,但没有成功。我认为仅指定变量名应该就足够了,但它不起作用: 我还尝试在应用程序中指定一个属性。属性 读起来就像 但变量始终为空。 我错过什么了吗?在Quarkus中读取环境变量的正确方法是什么 我正在使用Quarkus 1.2.0。最终的

  • 5.3.1 $%envVarName% 当编译时,$%envVarName% 将会被环境变量 envVarName 替换。

  • 问题内容: 有没有办法在Node.js代码中读取环境变量? 例如Python的。 问题答案: process.env.ENV_VARIABLE 您要访问的变量的名称在哪里。

  • 在SpringBoot中读取环境变量的最佳方法是什么? 在Java中,我使用了以下方法: 是否可以使用注释来实现?

  • 在Jenkins中,我试图设置一个动态环境变量。 我使用Scriptler创建了一个Groovy脚本并将结果写入文件。 然后,我使用EnvInject来读取该文件的内容。 Groovy脚本: 设置: 但是,我想要设置的环境变量仍然无法识别: 知道为什么无法识别环境变量吗?