2016-05-26 3 views
-1

これは、私が実行すると私のスクリプトがScala Script:質問する前にStdInに入力を与える方法?

$cat automate.scala 
import scala.io.StdIn 

println("What's your name:") 
val name = StdIn.readLine() 
println(s"Hello $name") 

のように見えるもので、私はしかし、私は

$ scala automate.scala JamesBond 

として、コマンドラインでオプションを渡すために

$ scala automate.scala 
What's your name: 
James bond 
Hello James bond 

たかったんしかし、私がすると、私はまだ得る

$ scala automate.scala JamesBond 
What's your name: 
James Bond 
Hello James Bond 

これを処理するにはどうすればいいですか

+2

'echo JamesBond | scala automate.scala'? –

答えて

0

これは、誰かがあなたに電話をかける前に電話に答えるようなものです。 StdInは端末からオンデマンドで入力を受け取ります。

Scalaプログラム/スクリプトに渡されるコマンドライン引数はArray[String]argsで利用可能になります。だから代わりにこれを行うことができます:

$cat automate.scala 

import scala.io.StdIn 

println("What's your name?") 

val name = { 
    if (args.nonEmpty) 
    args(0) 
    else 
    StdIn.readLine() 
} 

println(s"Hello $name") 
関連する問題