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/