2013-03-04 46 views
2

我試圖創建一個腳本來檢查/ mnt/sda b c d ...是否存在shell腳本。當它找到腳本時,它需要執行它。 這是我到目前爲止有:linux如果腳本存在於mnt執行腳本

for x in a1 a2 b1 b2 c1 c2 d1 d2 e1 e2 f1 f2; do /mnt/sd$x/1_drive_check.sh; done 

這是確定的,但它實際上是嘗試運行該腳本在每個安裝點。通常我不會在意,但我需要在控制檯中顯示最少量的信息。

我知道檢查文件是否存在的命令。

if [ -f 1_drive_check.sh ] then 
echo 1_drive_check.sh exists! 
fi 

我不知道該怎麼做是合併兩個在一起,看看是否在/ sda1的或SDA2或sdb1的存在1_drive_check.sh,等等。然後執行它。我厭倦了一個熱膠槍,但我燒了自己。

僅供參考,我真的很新,因爲我習慣於定期與VBS合作。

+0

'for ...;如果[...]那麼/ mnt/sd$x/1_drive_check.sh; fi; done' – Wrikken 2013-03-04 20:12:35

回答

2

除了for ...; do if [ ... ]; then /mnt/sd$x/1_drive_check.sh; fi;done解決方案,您可以:

find /mnt/ -maxdepth 2 -name '1_drive_check.sh' -executable -exec {} \; 

...節省手動添加驅動器。

+0

令人驚歎!謝謝!! – Ray 2013-03-04 20:30:13

1

只是一個想法...

for script in /mnt/sd[a-f]{1,2}/1_drive_check.sh 
do 
    $script 
done 

只有發現實際上有腳本。