3

我想使用 Bourne shell 背景 & 作为 ONE 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}
4

1 回答 1

1

我不知道bsub,但我也许可以给你一个我使用的技巧batchssh以及其他一些不同的 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}"

如果必须由(再次,我不知道这个产品)开发,也许你必须将双引号(")更改为引号( )'$ibsub

或者

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'在 word 之前只能放置一个列表eocmd

同样,$如果$i必须由bsub.

对于$TERM未设置环境的工作,我有时会使用:

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

希望这可以完成这项工作。

于 2016-02-23T08:33:44.310 回答