r - 为什么 knitr 代码块中的 $PATH 与终端中的 $PATH 不同?

标签 r bash r-markdown knitr

knitr BASH block 中回显的 $PATH 缺少我的 MACOS 终端中 $PATH 的一些路径。 这是为什么?有没有什么方法可以在 knitr 中设置 bash 引擎中的默认 $PATH 与终端中相同?

1- 针织物:

```{bash}
echo $PATH
```

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/VMware Fusion.app/Contents/Public:/Library/TeX/texbin:/opt/X11/bin:/opt/local/

2- 在终端中:

echo $PATH
/opt/local/bin:/opt/local/sbin:/Users/xxx/miniconda3/bin:/Library/Frameworks/Python.framework/Versions/3.6/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/mysql/bin:/Applications/vcflib/bin:/Applications/bedtools

最佳答案

这是因为当您在 OSX/MacOS 中通过 GUI 启动 shell 时 .profile (和 .bash_profile.bashrc )不运行。本质上的区别是 login shell and a non-login shell

在终端中,运行 cat ~/.profile看看你的.profile包含。它会因用户而异,您可以根据自己的喜好自由修改。

有多种方法可以制作 $PATH在 R 中匹配 .profile一。最直接的是使用 Sys.setenv(PATH=...) 添加路径,但这仅适用于每个 session ,当您重新启动 R 时它将被重置。更永久的选项是放置 Sys.setenv(PATH=...).Rprofile ,或定义PATH.Renviron .

关于r - 为什么 knitr 代码块中的 $PATH 与终端中的 $PATH 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53986881/

相关文章:

r - 向 R 气泡图添加基于颜色的区分

r - 矩阵中的 for 循环 - 相对频率

linux - 如何获取bash脚本中小于号(<)后面的参数?

Rmarkdown转word文档-如何将图片(一张图片)居中对齐

r - 在 rmarkdown/knitr 中注释以防止 R 评估

R Markdown 中的Python

javascript - 以多个 selectInput 为条件的 conditionalPanel

r - 如何通过对 R 中的条目进行分组来创建时间序列?

linux - 基于shell中正则表达式的颜色突出显示输出

bash - vim - 在我的 .bashrc 中运行 :! 命令