![当通过 R “?”帮助命令调用时,以受限模式运行 bash](https://linux22.com/image/1584672/%E5%BD%93%E9%80%9A%E8%BF%87%20R%20%E2%80%9C%EF%BC%9F%E2%80%9D%E5%B8%AE%E5%8A%A9%E5%91%BD%E4%BB%A4%E8%B0%83%E7%94%A8%E6%97%B6%EF%BC%8C%E4%BB%A5%E5%8F%97%E9%99%90%E6%A8%A1%E5%BC%8F%E8%BF%90%E8%A1%8C%20bash.png)
我经常使用 Rstudio 内置的终端在服务器上远程运行交互式 R 命令和脚本。有时,当 R 不在终端中运行时,我最终会在终端中执行。发生这种情况的原因有很多,但其中一个原因是,在终端中运行 R 命令“?library”后,终端实际上处于 bash shell 中。
出现的问题是,R 命令通常带有“>”,因为这是 R 中的命令提示符,或者命令可能是“Var1 > Var2”。这将无意中通过 Linux 重定向运算符在远程工作目录中创建文件。我很乐意设置 noclobber 以避免灾难性的覆盖,但我也想避免创建新文件。
解决此问题的一种方法是禁用整个 ssh 会话中的“>”。我在其他地方询问过这个问题,并且了解到如果不通过在受限模式下运行来禁用大部分 bash,则无法做到这一点。
更好的解决方案是自动以受限模式运行 bash,但仅当通过在远程终端 R 会话中调用“?”来暴露它时才运行。
有人能帮忙吗?谢谢