首页 > 解决方案 > 如何将bash变量作为字符串而不是数组传递给scala文件

问题描述

export str_opt="$(cat bi_sureyield_clicks_v.sql|tr '\n' ' ')"
sbt "run $str_opt"

我在 gitlab-ci.yml 文件中有这段代码。当在 repo 中提交 sql 文件时,我想做一些事情。由于 sql 文件为 \n init,我将其截断,然后使用 sbt run 将其发送到 scala 项目,但在代码中我做了类似的事情

object printtest {
    def main(args:Array[String]):Unit = {
        println("HELLO WORLD SCALA" + args.length)
        args.foreach{println}
    }
}

它显示长度> 1。它需要 \n 或空格作为新字符串的分隔符。如何在 scala 中将其作为单个字符串获取,以便我可以使用查询并对其进行处理。我不想在 Scala 端写代码。是否可以使用 bash 或者我做错了什么?

谢谢

标签: bashscalaterminalgitlab-ci

解决方案


您需要在双引号中添加转义的双引号,如下所示:

sbt "run \"$str_opt\""

推荐阅读