将Rmarkdown变量传递给Bash时无法删除文件夹路径

时间:2018-02-16 14:52:43

标签: r bash variables r-markdown

我试图通过在我的Rmarkdown中使用filepath代码块来删除定义为R变量bash的文件夹路径。

previous question以及Yihui&​​#39; example跟进,我将变量filepath传递到bash块中,其中包含以下R代码块:

```{r}
Sys.setenv(FILEPATH = filepath)
```

虽然我能够在echo块中bash我的变量,但当我尝试rm -r我的$FILEPATH变量时出现错误。

```{bash}
echo $FILEPATH
rm -r $FILEPATH
```
  

〜/ Projects / test_threshold

     

rm:〜/ Projects / test_threshold:没有这样的文件或目录

我已经尝试直接在bash终端中分配我的变量以进行删除,并且它有效。

deletedir=~/Projects/test_threshold
rm -r $deletedir

对我做错了什么的任何建议?谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

为什么不从R中删除它?

```{r}
system("rm -r $FILEPATH")
```

答案 1 :(得分:0)

使用绝对路径,例如/home/users/seanm/Projects/test_threshold,而不是使用代字号(最好留给人类使用。)并始终引用您的变量。

使用此脚本查看出现问题的示例:

cd ~
mkdir foobar
ls ~/foobar
a="~/foobar"
echo "$a"
ls "$a"

你会看到这个输出:

 
~/foobar
-bash: cd: ~/foobar: No such file or directory