Java 将输出重定向到提要作为命令行的输入?
我想在bash脚本中运行以下代码:Java 将输出重定向到提要作为命令行的输入?,java,perl,bash,syntax,redirect,Java,Perl,Bash,Syntax,Redirect,我想在bash脚本中运行以下代码: java -jar VarScan.v2.2.jar somatic < samtools view -b -u -q 1 $n_b \ | samtools pileup -f $r - < samtools view -b -u -q 1 $t_b \ | samtools pileup -f $r - output 是参数和参数之一 samtools view -b -u -q 1 $t_b | samtools pileup -f $r
java -jar VarScan.v2.2.jar somatic < samtools view -b -u -q 1 $n_b \
| samtools pileup -f $r - < samtools view -b -u -q 1 $t_b \
| samtools pileup -f $r - output
是参数和参数之一
samtools view -b -u -q 1 $t_b | samtools pileup -f $r
是另一个参数。这两个参数本身都是可执行的
所以我想要的是
samtools view -b -u -q 1 $n_b | samtools pileup -f $r -
先执行
samtools view -b -u -q 1 $t_b | samtools pileup -f $r
输出变成了躯体的输入。可能不是答案,因为我不理解这个问题: 我会用 (samtools视图-b-u-Q1$n|b | samtools堆积-f$r-\ samtools视图-b-u-q 1$t|b | samtools堆积-f$r-)\
|java-jarvarscan.v2.2.jar输出
[EDIT]我想我现在明白你的问题了,如果我错了,请纠正我 让我们从最简单的示例开始,该示例具有与您的示例相同数量的不同命令行。假设您有三个程序,“体细胞”、“samtools1”和“samtools2”。samtools1和samtools2接受两个参数,而samtools1和samtools2不接受任何参数 让我们进一步想象一下,当运行samtools1时,它会产生一个单词“output1”。同样,让我们想象一下,当运行samtools2时,它会产生一个单词“output2”。然后您希望运行该命令
somatic output1 output2
作为命令行
实现这一目标的方法是
somatic `samtools1` `samtools2`
不涉及重定向
或者在血淋淋的细节上,用你最初的例子,比如
java -jar VarScan.v2.2.jar somatic `samtools view -b -u -q 1 $n_b | samtools pileup -f $r -` `samtools view -b -u -q 1 $t_b | samtools pileup -f $r - output`
虽然“和”之间可能存在一些相互作用,但这需要一些括号或引号。我还没试过运行这个
[留给审计的旧东西]
您的问题对我来说并不完全清楚:您是否清楚您是想重定向输出还是制定一个命令行?我猜你指的是后者,因为你说的是两个参数,只有一个标准输入
如果要从命令的输出公式化命令行参数,则要使用的bash语法是反引号“`”
例如,要运行一个命令'mycommand',该命令预期一个日期作为其命令行argumemt,您可以使用
mycommand `date`
它将运行date命令,并使用该命令的输出作为mycommand的第一个参数。我的问题的解决方案位于:
$n_p和$t_p是可执行命令。因此,最后我们得到一个命令:java-jar VarScan.v2.2.jar,但是$n_p和$t_p是VarScan的体细胞功能的输入参数:嘿,彼得……谢谢你的评论……非常感谢。我已经更新了我的问题,所以现在更清楚了…thanskI删除了我的答案,因为我不知道体细胞VarScan。谢谢你的回答…好的,我试着重新表述我的问题。你现在能理解吗…不确定,这是否有帮助?好的…这是软件的链接…谢谢…Burleigh Bear。。!我会试试你的建议。非常感谢你的帮助。。
mycommand `date`