【问题标题】:executing unix commands from scala script从 scala 脚本执行 unix 命令
【发布时间】:2016-09-13 15:50:57
【问题描述】:

我不清楚从基于 scala 的脚本中执行 unix 命令的最佳实践。

这里有一个典型的 scala 脚本

#!/bin/sh
exec scala "$0" "$0" "$@"
!#

println("args length is ", args.length)

### want to list all files in the underlying folder
val resultSet = "ls -la"????

我查看了许多帖子,但没有一个清楚地概述可以从 scala 脚本执行 unix 命令并执行一些转换的工作脚本。

【问题讨论】:

标签: scala unix


【解决方案1】:

导入scala.sys.process._并使用!!!执行linux命令

scala> import scala.sys.process._
scala> "ls -la" !
scala> "ls -la" !!

您也可以在scala script 中执行此操作

!返回命令执行后的退出码

!!返回命令执行后的输出

解析"ls -la" !!的输出并获取当前目录中的文件。

【讨论】:

    【解决方案2】:

    这里有一个简单的脚本可以帮助您入门。

    #!/usr/bin/env scala
    import scala.sys.process._
    
    // args is auto-populated
    println("arg len = " + args.length)
    
    // get listing of current files
    val files: Array[String] = "ls -a".!!.split("\n")
    println("5th fiile is " + files(4))
    
    System.exit(0)
    

    研究标准库的process package,了解更多关于捕获进程输出、进程退出状态、流水线等的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多