如何在单个根目录下为不同目录运行此脚本?

时间:2016-02-29 16:03:25

标签: bash shell sh

我在/home/das/work/

中有一些子目录

我创建了一个脚本

#!/bin/bash
for i in *_K27me3.bed
do
intersectBed -wa -wb -a $i -b /home/das/work/mm9/mm9_prom_genes_2.5kb.bed | awk -v OFS='\t' {'print $1,$2,$3,$7,$8}' > `basename $i`_prom_genes_2.5kb.txt
done

它位于目录/home/das/work/

我想为上面提到的目录中的所有目录运行它。

我使用的是以下命令,但无法正常工作。我想知道实现相同的两种不同方法,要么使用一个使用上述脚本作为函数的脚本,并且每次在父目录的子目录中运行它,或者如下所示分别调用上面的脚本。 / p> 假设在父目录/home/das/work

中,运行脚本的

命令

for f in *; do [ -d "$f" ] && cd "$f" && ./annotate_prom.sh;done;cd ..

运行上述命令时出现错误 -clustershell: ./annotate_prom.sh: No such file or directory

1 个答案:

答案 0 :(得分:1)

交换..$job = $client->createJob(array( 'PipelineId' => 'MYPIPELINE', 'Input' => array( 'Key' => 'MYVIDEOKEY', 'FrameRate' => 'auto', 'Resolution' => 'auto', 'AspectRatio' => 'auto', 'Interlaced' => 'auto', 'Container' => 'auto', ), 'OutputKeyPrefix' => 'MYPREFIX/', 'Output' => array( 'Key' => 'MYNEWKEYNAME', 'ThumbnailPattern' => 'thumb-{count}', 'Rotate' => 90, 'PresetId' => 'MYPRESET', 'Watermarks' => [ [ 'InputKey' => 'MYOVERLAY', 'PresetWatermarkId' => 'BottomRight' ] ] ) )); 并将{{1}}放在脚本路径的开头:

表示f in *;做[-d“$ f”]&& (cd“$ f”&& ../annotate_prom.sh);完成