我是 Perl 初学者。我有这个 Perl 片段
$normal_pileup = "samtools mpileup -q 1 -f XXXX YYYYY";
$tumor_pileup = "samtools mpileup -q 1 -f XXXX ZZZZZ";
bash -c \"java -jar ttt.jar <\($normal_pileup\) <\($tumor_pileup\) output
他们尝试发出一个系统调用,将这些命令的输入传送到 Java 程序中。我无法让它发挥作用。谁能告诉我该怎么做吗?
最佳答案
您不能直接从 Perl 调用 bash。但是,如果您使用 system
,则会调用/bin/sh,这可能不支持进程替换。
可能的解决方法之一是
system qq(echo 'java -jar ttt.jar <($normal_pileup) <($tumor_pileup) output' | bash);
关于java - Perl 将 bash 管道发送到 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12174161/