我经常使用 Rstudio 内置的终端在服务器上远程运行交互式 R 命令和脚本。有时,当 R 不在终端中运行时,我最终会在终端中执行。发生这种情况的原因有很多,但其中一个原因是,在终端中运行 R 命令“?library”后,终端实际上处于 bash shell 中。
出现的问题是,R 命令通常带有“>”,因为这是 R 中的命令提示符,或者命令可能是“Var1 > Var2”。这将无意中通过 Linux 重定向运算符在远程工作目录中创建文件。我很乐意设置 noclobber 以避免灾难性的覆盖,但我也想避免创建新文件。
解决此问题的一种方法是禁用整个 ssh 会话中的“>”。我在其他地方询问过这个问题,并且了解到如果不通过在受限模式下运行来禁用大部分 bash,则无法做到这一点。
更好的解决方案是自动以受限模式运行 bash,但仅当通过在远程终端 R 会话中调用“?”来暴露它时才运行。
有人能帮忙吗?谢谢