2012-10-26 160 views
1

這塊bash代碼在存在多個文件夾時不顯示文件夾名稱。在bash中打印文件夾名稱

#!/bin/bash 

for file in .; do 
    if [ -d $file ]; then 
    echo $file 
    fi 
done 

輸出只有. 你能解釋一下爲什麼嗎?

回答

5

它將.作爲大小爲1的數組讀取並打印給您。使用這樣的事情,而不是:

for file in `ls`; do 
    if [ -d $file ]; then 
    echo $file 
    fi 
done 
+0

[不解析'ls'(http://mywiki.wooledge.org/ParsingLs),使用水珠代替(即'在*文件; do') –

相關問題