我想将Bourne shell背景&符号用作ONE bsub执行命令的一部分。
请注意,我不想使用.bash文件,而是使用一个bsub命令行来执行整个过程。
请注意,我也不想将我的bsub内容拆分为几个彼此等待的bsub命令,而是将一些内部unix命令包含在一个bsub命令行中,这些命令使用Bourne相互等待贝壳背景&符。
以下尝试仅产生第一个内部命令(liftOver命令)的输出,但是没有执行sort或mv。
psql
在bsub之外,这个程序可以写成如下:
bsub -q medium -J $i "liftOver $i mm10ToMm9.over.chain.gz ${i/.bed/.mm9.bed} ${i/.bed/.unlifted_to_mm9.bed} & sort -k1,1 -k2,2n ${i/.bed/.mm9.bed} > ${i/.bed/.mm9.bed}.srt & mv ${i/.bed/.mm9.bed}.srt ${i/.bed/.mm9.bed}"
答案 0 :(得分:1)
我不知道bsub
但是我可以给你一个技巧我用batch
,ssh
和其他一些不同的shell :
bsub -q medium -J $i <<<"liftOver $i mm10ToMm9.over.chain.gz ${i/.be/.mm9.bed} ${i/.bed/.unlifted_to_mm9.bed} &&
sort -k1,1 -k2,2n ${i/.bed/.mm9.bed} > ${i/.bed/.mm9.bed}.srt &&
mv ${i/.bed/.mm9.bed}.srt ${i/.bed/.mm9.bed}"
如果必须由"
开发'
,可能必须更改引号($i
)的双引号(bsub
)(同样,我不知道这个产品)
或
bsub -q medium -J $i <<-eocmd
liftOver $i mm10ToMm9.over.chain.gz ${i/.be/.mm9.bed} \
${i/.bed/.unlifted_to_mm9.bed} &&
sort -k1,1 -k2,2n ${i/.bed/.mm9.bed} > ${i/.bed/.mm9.bed}.srt &&
mv ${i/.bed/.mm9.bed}.srt ${i/.bed/.mm9.bed}
eocmd
(警告:在 $'\t'
之前,只能放置一个制表eocmd
同样,如果必须$
开发$i
,您可能必须转义bsub
符号。
要解决 $TERM
环境未设置的问题,我会暂时使用:
bsub -q medium -J $i /bin/bash <<-eocmd
...
eocmd
希望这可以胜任。