2017-03-07 66 views
0

運行一個shell腳本上面我有以下的文件目錄殼牌:我如何從一個目錄多個文件

/home/aero/airplane/case1 
/home/aero/airplane/case2 
.. 
/home/aero/airplane/casex 

我有一個執行一些簡單的命令shell腳本。我不想在每個目錄中「cd」並運行shell腳本(runscript.sh)。有沒有一種方法,以更簡單的方式運行,其中I型線沿線的東西:

runscript.sh /case* 

感謝您的幫助!

回答

0

您可以與所有的情況下運行runscript.sh第二個腳本:

#In the new shell run every case 
runscript.sh /home/aero/airplane/case1 
runscript.sh /home/aero/airplane/case2 
.. 
runscript.sh /home/aero/airplane/casex 
+0

此方法的問題是您必須創建第二個腳本,這會消耗時間並且特定於第二個腳本中列出的情況。我看到了能夠使用通配符參數運行腳本的命令(我現在不記得了)(案例*)。 – user7649922

0

你可以做類似如下:

內創建一個名爲runscript.sh文件/ home /航空/飛機

#!/bin/bash 
MAINPATH=/home/aero/airplane 
CHILD_DIR=$(ls | grep -v runscript.sh) 

for i in $MAINPATH 
do 
    cd $MAINPATH/$i 
    pwd 
    cd .. 
done 

運行:

sh runscript.sh 

看到腳本一次進入運行它的所有目錄。

現在,您可以在所有目錄中更改「pwd」行來執行任何您想要的操作。

+0

我正在尋找更直接的東西。我知道如何使用以下提交我的shell腳本:'cd case1; runscript.sh'我希望能夠輸入'cd case *; runscript.sh「,腳本將能夠運行所有案例目錄。我希望其他用戶無需設置額外的文件/ shell就可以運行此操作。 – user7649922

+0

我認爲我得到了您所需的內容,但我認爲不可能像本地運行某些內容:cd case *可以運行所有情況,而無需你將它設置在主腳本上,在這種情況下是runscript.sh。最接近我可以想到的是創建一個例程來執行此操作,在runscript.sh中,並創建一個符號鏈接到/ usr/bin或另一個存放系統二進制文件和命令的文件夾中,這樣腳本就可以在任何地方使用。如果你更多地解釋你的想法,我可能會更詳細。 –

相關問題