Scala入門之外部命令

外部命令

在Java中我們可以使用Runtime.getRuntime().exec();來和系統交互。 
在Scala中scala.sys.process提供了shell和系統交互的DSL,包括執行命令、邏輯操作、重定向、管道等操作。
    使用!來執行外部命令,如 "ping www.baidu.com" !
外部命令感覺用得不多,暫時做下了解。

這裏寫圖片描述

使用邏輯操作#&&,#||
cmd1 #&& cmd2
cmd1 #|| cmd2
使用管道:
cmd1 #| cmd2
也就是說要加個#在前面
使用重定向時:a #< file or file #> a
a可以是一個文件或者一個命令,如: file(“blog.html”) #> file(“fuliang_blog.html”) !
還可以使用 #>> #<<追加操作:
a #>> file or file #<<

package com.dt.scala.moguyun

/**
  * scala外部命令
  * scala.sys.process提供了shell和系統交互的DSL,包括執行命令、邏輯操作、重定向、管道等操作。
  * Created by hlf on 2016/8/13.
  */
object CMD {
  def main(args: Array[String]) {
    //要導入這個包
    import scala.sys.process._
    //使用!來執行外部命令
     "ping www.baidu.com" !
    val pingCMD = "ping www.baidu.com" !

    //這裏在上面得空一行,不然報錯,真鬱悶,猜測可能是!是執行命令,不能馬上加其他執行語句
    println(pingCMD)

  }
}
結果

正在 Ping www.a.shifen.com [14.215.177.37] 具有 32 字節的數據:
來自 14.215.177.37 的回覆: 字節=32 時間=7ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=6ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=6ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=7ms TTL=56

14.215.177.37 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒爲單位):
    最短 = 6ms,最長 = 7ms,平均 = 6ms

正在 Ping www.a.shifen.com [14.215.177.37] 具有 32 字節的數據:
來自 14.215.177.37 的回覆: 字節=32 時間=7ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=7ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=7ms TTL=56
來自 14.215.177.37 的回覆: 字節=32 時間=6ms TTL=56

14.215.177.37 的 Ping 統計信息:
    數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒爲單位):
    最短 = 6ms,最長 = 7ms,平均 = 6ms
0

Process finished with exit code 0

感謝[DT大數據夢工廠]首席專家Spark專家王家林老師的課程分享。更多精彩內容請掃描關注[DT大數據夢工廠]微信公衆號DT_Spark

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章