在R shell中使用system调用ssh会消耗后续命令
我的工作流程是通过ESS包将命令从emacs缓冲区发送到emacs中的R会话在R shell中使用system调用ssh会消耗后续命令,r,vim,emacs,ess,vim-r,R,Vim,Emacs,Ess,Vim R,我的工作流程是通过ESS包将命令从emacs缓冲区发送到emacs中的R会话 a=0; system("ssh remotehost ls") a = a+1; 当我快速连续运行上面的三行(即,将它们提交到R缓冲区)时,末尾的a值为0。当我慢慢跑的时候,a是1 我只是在通过系统运行ssh命令时遇到了这个问题。在所有其他情况下,命令排队并按顺序运行 我的同事在R/vim设置上也有同样的问题。但我们在RStudio中没有同样的问题 这里的任何建议都很好。ssh在system()命令执行过程中会吃掉
a=0;
system("ssh remotehost ls")
a = a+1;
当我快速连续运行上面的三行(即,将它们提交到R缓冲区)时,末尾的a值为0。当我慢慢跑的时候,a是1
我只是在通过系统运行ssh命令时遇到了这个问题。在所有其他情况下,命令排队并按顺序运行
我的同事在R/vim设置上也有同样的问题。但我们在RStudio中没有同样的问题
这里的任何建议都很好。
ssh
在system()
命令执行过程中会吃掉任何stdin
。如果您逐行粘贴它,那么ssh
在您提交a=a+1
之前终止,因此它被传递到R
而不是ssh
。如果您不希望子进程吃掉终端输入,请使用system(“ssh..
或system(…,input=“”)
。而您的编程问题是?呃-对不起-留言板有点错<代码>系统()。您可能希望运行命令管道并等待完成;另请参见help(system)
。我阅读了help(system)
,这本书很有趣,但没有给我任何想法<代码>系统2执行相同的操作。用分号分隔命令是有效的,这可能是我的方法。