2013-04-17 149 views
0

我需要編寫一個腳本(比如說A),它將在多個 目錄中運行腳本(說B)。腳本B在一組子目錄中運行一個腳本(比如C)。雖然我 寫和成功地執行腳本B和C,結合他們和寫作 腳本A對我來說似乎有點太難。在腳本中使用腳本運行腳本

B的一個例子是

MainDir="/home/kkk/mmm/dir" 
create_stack="${MainDir}/run/create_stack_and_find_seam.rb" 
# cd into the working main directory where all the subdirs are present 
for fil_no in [email protected] 
do 
    cd ${MainDir}/${fil_no} 
    pwd 
    # the working script    
    echo ${fil_no} 
    ${create_stack} ${fil_no} 
done 
# Go back to the original starting directory 
cd $OLDPWD 

上述(腳本B)的腳本中的Ruby腳本 「create_stack_and_find_seam.rb」 在一組目錄fil_no徵。 現在我有幾個不同的子目錄在不同層次上列出「fil_no」在 。 因此,我現在需要在所有目錄中執行腳本B,在Turn中將在所有不同的子目錄中運行 「create_stack_and_find_seam.rb」(即腳本C)。

+0

我會'腳本B的'MainDir'參數,然後'腳本A'調用選擇不同的'腳本B 」。例如,腳本A會運行'ScriptB.sh/home/kkk/mmm/dir',然後運行'ScriptB.sh/home/kkk/mmm/differntdir'等。這可能有助於http://doitwithlinux.blogspot.co.uk/2012/05/slightly-more-advanced-guide-to-shell.html – SpaceCowboy

+0

請您提供一些清晰的問題?是紅寶石腳本遞歸搜索目錄並從$ MainDir進行處理?現在如果你單獨運行它,它會這樣做嗎?目錄結構的一些想法也可能有所幫助。 – suspectus

+0

Hi @suspectus - – user2209882

回答

0

而且我的意見,如果我們改變「MAINDIR」在腳本B的參數如下圖所示

MainDir=$1 

然後,我們可以編寫腳本A作爲:

#!/bin/bash 
ScriptB.sh /home/first/directory 
ScriptB.sh /home/second/directory 

當然這一點將意味着更改${MainDir}/run/create_stack_and_find_seam.rbcd ${MainDir}/${fil_no}部分。如果這些只是在一個地方,然後刪除MainDir和添加一個新的變量將幫助