2014-05-06 89 views
0

一個.SH劇本,我想根據下列文件夾結構,運行名爲存在於每個子文件夾.SH腳本Gex_experiments :運行在子文件夾

Folder1  
--FolderA  
    --Gex_experiments  
--FolderB  
--Gex_experiments  
--FolderC  
--Gex_experiments  
.......  
--FolderAYCD 
--Gex_experiments 

要運行腳本.SH存在於過去的子文件夾(FolderA,FolderB中,FolderC,...)的第一級我用下面的腳本:

for i in *; 
do  
    cd $i; 
    qsub myscript.sh;  
    cd ..;  
done 

但現在我不能夠在子文件夾克至進入ex_experiments在這種情況下,我想運行的腳本存在。
任何人都可以幫助我嗎?

回答

1

如果您在Folder1開始,你可以這樣做:

for i in */ 
do 
    (cd "$i"Gex_experiments && qsub myscript.sh) 
done 

中的斜槓*/意味着,只有目錄會被發現。圍繞循環的()表示該命令在子外殼內運行,因此您不需要cd退出。

+0

超級!它的工作原理!非常感謝!!!!! – Elb

+0

@Elb高興地幫助一個'qsub'ber(只要你不在我排隊); –

+0

Ahahaha ...總是在隊列.... :-) – Elb