执行需要用户输入的终端命令

时间:2016-12-21 14:13:31

标签: r macos

如何执行通常需要用户交互的系统命令?例如,我想运行:

system("ssh-keygen") 

在终端提示符下,它看起来像这样:

iMac-2:~ admin$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/admin/.ssh/id_rsa):

在RStudio中,此命令会导致应用程序挂起。

我尝试了wait=FALSEinvisible=FALSE选项,但它们似乎没有帮助。

R: Using wait=FALSE in system() with multiline commands

`system()` interactive .exe/binary from R/Rgui

1 个答案:

答案 0 :(得分:2)

好。

有一些命令允许您将参数放在命令行中:

例如:

ssh-keygen

如果您运行:ssh-keygen --help,您可以找到类似的内容:

ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]

它表示您可以在命令行中指定参数。

在我的情况下,我已经测试过:

ssh-keygen -f /tmp/id_rsa -P ""

我不需要与该计划进行互动。

adduser命令这样的另一个示例,您可以尝试使用:

echo PASSWORD | passwd USERNAME --stdin