2013-03-18 27 views
0

我的代碼不起作用。在if-它聲明「太多的論據」。我知道有其他方法可以做到這一點,但我想知道我的代碼有什麼問題。我想列出目錄中的所有文件

for fname in "*" 
do 
    h=$fname 
    if [ -f $h ] 
    then 
    echo $fname 
    fi 
done 

回答

3

各地*請參閱刪除雙引號:

for fname in * 
do 
    h=$fname 
    if [ -f $h ] 
    then 
    echo $fname 
    fi 
done 

希望這會工作。

Double quotes: Variables are expanded when enclosed in double quotes.

這就是爲什麼你的代碼拋出錯誤:「太多的參數」。

0
read LOCATION 
for filename in $LOCATION 
do 
    if [[ -d $filename ]]; then 
     echo "$filename /" 
    elif [[ -f $PASSED ]]; then 
     echo "$filename *" 
    else 
     echo "$filename is not valid" 
    exit 1 
    fi 
done 
相關問題