有一个完全可以工作的R-script。但是,当从Rscript执行它时,它不会停止接受用户输入。用户输入是一些readline语句。提示输入的cat语句可以正常工作。我错过了什么吗?我在macOS上从终端执行'Rscript scriptfile.R‘。
发布于 2017-07-15 23:36:39
正如meenaparam建议的帖子中提到的那样,通过将readline更改为readLines,成功地使其工作。这种方法的缺点是该脚本只能在批处理模式下工作,在Rstudio中运行它会使其挂起。如果知道捕获键盘输入的一般方法,即在交互模式和批处理模式下都能工作,那就好了。
发布于 2017-11-22 00:08:07
您可以创建函数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)https://stackoverflow.com/questions/45104078
复制相似问题