I am have a piece of code that prompts for user input and works perfectly fine in while running the code in Windows. However, in Linux, it executes every line without waiting for user input.
I have added the code in a separate function and used system("stty -echo") without success. Why is this happening and what can be done ? (execution command : Rscript test.R)
require(Biostrings)
read_value <- function(prompt_text = "", prompt_suffix = getOption("prompt"),
coerce_to= "character")
{
prompt <- paste(prompt_text, prompt_suffix)
system("stty -echo")
as(readline(prompt), coerce_to)
}
prints<-function()
{ opt<-as.character(readline(prompt = "Enter parameter values: "))
system("stty -echo")
i<-1
while ((i<=5))
{ if (i==1)
{ expr.filename <- as.character(readline(prompt = "Expression file name: "))
tryCatch( {expr.file<-read.table(expr.filename)},error=function(e)
{print("ERROR : Enter valid filename!") return })
}
if (i==2)
{ system("stty -echo")
fasta.filename <- as.character(readline(prompt = "Fasta file name: "))
tryCatch( {sequence_data<-read.DNAStringSet(fasta.filename)},error=function(e)
{print("ERROR : Enter valid filename!") return })
}
#missing piece of code
i<-i+1
}
Rscript test.Rin Windows? Are you running it from the Windows command line? I ask becausereadlineshouldn't prompt for user input when called from a non-interactive session, regardless of the platform.