2017-07-14 117 views
0

有一个完整的R脚本。当从Rscript执行它时,它不会停止接受用户输入。 用户输入是一些readline语句。提示输入的猫语句按预期工作。我错过了什么吗? 我在macOS上从终端执行'Rscript scriptfile.R'。Rscript和用户提示

+2

这可能帮助:https://stackoverflow.com/questions/3935288/how-to-include-interactive-input-在命令行中运行的脚本 – meenaparam

+0

您能否提供您的代码示例? –

回答

0

如meenaparam建议的文章中所述,通过将readline更改为readLines来管理它的工作。这种方法的缺点是它只能在批处理模式下运行,在Rstudio中运行它会使其挂起。很好的了解一种捕获键盘输入的一般方法,即可以在交互模式和批处理模式下使用。

0

您可以创建一个函数typeline()来读取输入行,然后将结果用于下一个命令。它会等待您输入文本要么你在Rstudio或在终端运行代码:

typeline <- function(msg="Enter text: ") { 
    if (interactive()) { 
    txt <- readline(msg) 
    } else { 
    cat(msg); 
    txt <- readLines("stdin",n=1); 
    } 
    return(txt) 
} 

txt=typeline("your message: ") 
print(txt)