bash声明结尾处的“ – ”是什么意思?

例如

bwa sampe ref.fa r1.sai r2.sai r1.fq r2.fq | samtools view -bSho out.bam -; 

“ – ”的目的是什么? 字符在最后? 他们在做什么? 为什么他们需要?

分号结束命令(结束流水线 ,我相信在技术上是正确的说法)。 如果你愿意的话,你可以用另一个命令来跟着它

 bwa sampe ref.fa r1.sai r2.sai r1.fq r2.fq | samtools view -bSho out.bam -; echo Here is another command. 

否则,分号是无害的,但可能是不必要的。

关于分号之前的连字符,对于samtools和许多其他命令,它意味着使用标准输入来代替输入文件(或在某些情况下,标准输出代替输出文件)。 这是典型的Linux / Unix用法。

(感谢@phatfingers验证samtools命令的用法。)