scala指令碼程式設計

weixin_33727510發表於2017-07-07

來自:http://blog.csdn.net/lovehuangjiaju/article/details/47725289

使用Scala進行Linux指令碼程式設計
#!bin/sh
exec scala "$0" "$@"
!#
println("Hello, Linux World")

儲存為hello.sh
執行 ./hello.sh

程式碼中, #!符號表示的是Unix shell指令碼的開始,它會呼叫Unix Bourne shell。exce命令是內建的shell,表示需要執行scala 命令,其中0繫結的是hello.sh指令碼名稱,@ 繫結的是我們輸入的引數。!#表示指令碼宣告頭部的結束。

還可以定義自己的main方法:

#!/bin/sh
exec scala "$0" "$@"
!#
object Hello {
  def main(args: Array[String]) {
    println("Hello, world")
    args.foreach(println)
  }
}
Hello.main(args)

新增依賴的jar包, 用:分開

#!/bin/sh
exec scala -classpath "lib/slick_2.11_2.1.0.jar:lib/mysql-connector-java-5.1.18-bin.jar" "$0" "$@"
!#
import scala.slick.driver.MySQLDriver.simple._
........

基本格式:
#!/bin/sh //樣板程式碼
exec scala -classpath "lib/slick_2.11_2.1.0.jar:lib/mysql-connector-java-5.1.18-bin.jar" "$0" "$@"
!# //樣板程式碼

....................

CoffeeExample.main(args) //樣板程式碼

加速程式碼執行:
scala指令碼在執行的過程中,也是通過編譯、執行的步驟來進行的,為了加速指令碼執行,第一次編譯的時候將編譯後的jar包儲存,如果jar包建立後沒有變化的話,直接使用以前編譯好的jar包,實現方法是在指令碼宣告時使用-savecompiled

#!/bin/sh
exec scala -savecompiled "$0" "$@"
!#
println("Hello, world!")
args foreach println

相關文章