通过system在R中使用gsutil命令-我需要分配哪些环境变量?

问题描述

不确定该如何处理,但目前无法正常工作

我的第一个想法:在主目录中,有用于GC SDK的文件夹:

Sys.setenv(PATH="$HOME/google-cloud-sdk")
system(paste0("gsutil cp ",paste0(bucket,cancer.id,"/rnaseq_fpkm_*.csv "),paste0(cancer.id,"/rnaseq_fpkm_*.csv")),intern=F)

sh: 1: gsutil: not found
Warning message:
In system(paste0("gsutil cp ",:
  error in running command

任何帮助将不胜感激。

解决方法

如果您想添加路径而不是替换,withr::with_path提供了一个很好的短期解决方案。您也可以使用expand.path将用户路径扩展为完整路径。试试

withr::with_path( path.expand("~/google-cloud-sdk/bin/"),{
   system(paste0("gsutil cp ",paste0(bucket,cancer.id,"/rnaseq_fpkm_*.csv "),paste0(cancer.id,"/rnaseq_fpkm_*.csv")),intern=F)
})

或者甚至只是为了检查它是否有效,请尝试

withr::with_path( path.expand("~/google-cloud-sdk/bin/"),{
   print(Sys.getenv("PATH"))
   print(Sys.which("gsutil"))
})