簡體   English   中英

使用多行輸入Scala處理包

[英]Using multi-line inputs Scala process package

我有以下代碼:

s"""java ${MemString} -jar ${toolsFolder}/GenomeAnalysisTK.jar -T IndelRealigner -R ${refFolder}/${RefFileName} -I ${tmpFolder}/region${chrRegion}.bam
    -targetIntervals ${tmpFolder}/region${chrRegion}.intervals -o ${tmpFolder}/region${chrRegion}-2.bam -L ${tmpFolder}/bed${chrRegion}.bed""" !
s"rm -rf ${tmpFolder}/region${chrRegion}.bam, ${tmpFolder}/region${chrRegion}.bai, ${tmpFolder}/region${chrRegion}.intervals" !

由於第一行有很大的輸入字符串,因此我試圖在過程中使用多行字符串輸入。 但是我收到以下錯誤:

sbt package
[info] Set current project to DNASeqAnalyzer (in build file:/home/sarthaksharma/Lab3/dnaseq_analyzer/)
[info] Compiling 1 Scala source to /home/sarthaksharma/Lab3/dnaseq_analyzer/target/scala-2.11/classes...
[error]    /home/sarthaksharma/Lab3/dnaseq_analyzer/src/main/scala/DNASeqAnalyzer.scala:148    : type mismatch;
[error]  found   : String
[error]  required: scala.sys.process.ProcessLogger
[error]             s"rm -rf ${tmpFolder}/region${chrRegion}.bam, ${tmpFolder}/region${chrRegion}.bai, ${tmpFolder}/region${chrRegion}.intervals" !
[error]             ^
[error] one error found
[error] (compile:compileIncremental) Compilation failed

如果我注釋代碼的第一行,它運行良好。 為什么在另一行顯示錯誤? 我該如何運行?

發生此問題的原因是您點擊了替代方法.!(logger)而不是沒有參數的方法。 因此,嘗試僅明確地寫點:

s"""long 
command""".!
s"another command".!

另外,我建議您將任何命令構造為字符串序列,這可以解決您的長命令問題,並且在如何解釋(和轉義)參數方面也不太含糊:

Seq(
  "command",
  s"option=${value}",
  "argument"
).!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM