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

时间:2016-02-23 07:07:19

标签: linux bash shell ampersand lsf

我想将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}"

1 个答案:

答案 0 :(得分: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}"

如果必须由"开发',可能必须更改引号($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

希望这可以胜任。