2014-11-06 102 views
0

我在教我自己的bash,並試圖創建一個腳本,它將循環訪問給定目錄中包含的目錄(或當前目錄,如果沒有提供) 。如何循環存儲在變量中的目錄路徑

這是劇本我到目前爲止有:

#!/bin/bash 
start_dir=${1:-`pwd`}  # set to current directory or user supplied directory 
echo start_dir=$start_dir 

for d in $start_dir ; do 
    echo dir=$d 
done 

首先,所有的這個腳本目前並是集dstart_dir ABD回聲在start_dir值。我想這是有道理的,但我希望它實際上會遍歷目錄。我如何獲得這個實際循環通過start_dir變量中設置的目錄?

此外,我只想循環通過目錄。 This answer,顯示在路徑後放置/將確保只有目錄返回到for循環。有沒有一種方法來合併這個以確保循環結束start_dir只會返回目錄,因爲有可能用戶不會提供腳本的目錄路徑?

乾杯

回答

3

該示例使用水珠,所以你可以:

#!/bin/bash 
start_dir=${1:-`pwd`}  # set to current directory or user supplied directory 
echo "start_dir=$start_dir" 

for d in "$start_dir"/*/ ; do 
    echo "dir=$d" 
done 

*不是一個目錄名,它只是意味着「任何字符串」。 Bash擴展它以查找匹配模式的所有路徑。

+0

謝謝。完美工作。還給了我一個調查'glob'的新術語 – br3nt 2014-11-06 00:17:48