在单个 bsub 命令中应用 Bourne shell 背景符号

Apply in a single bsub command the Bourne shell background ampersand

我想使用 Bourne shell 背景符号作为一个 bsub 执行命令的一部分。

请注意,我不想使用 .bash 文件,而是使用一个 bsub 命令行来执行整个过程。

请注意,我也不想将我的 bsub 内容拆分为几个相互等待的 bsub 命令,而是将一些内部 unix 命令包装到一个 bsub 命令行中,这些命令相互等待使用Bourne shell 背景符号。

下面的尝试只产生了第一个内部命令(liftOver 命令)的输出,但 sort 和 mv 都没有被执行。

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}"

在 bsub 之外,这个过程可以写成如下:

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}

我不知道 bsub 但我也许可以给你一个 技巧 我用 batch, ssh 和其他一些不同的外壳:

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

(警告:在单词eocmd之前只能放置一个表格$'\t')

同样,如果 $i 必须由 bsub 开发,您可能必须转义 $ 符号。

为了解决 $TERM 环境未设置 ,我有时使用:

bsub -q medium -J $i /bin/bash <<-eocmd
    ...
        eocmd

希望这能完成工作。