外部命令
在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