我想列出目录中的所有文件

时间:2013-03-18 04:20:43

标签: file shell

我的代码不起作用。在if - 声明中,它说“论证太多”。我知道有其他方法可以做到这一点,但我想知道我的代码有什么问题。

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

2 个答案:

答案 0 :(得分:3)

删除*周围的双引号,请参阅:

for fname in *
do
  h=$fname
  if [ -f $h ]
  then
    echo $fname
  fi
done
希望这会奏效。

  

双引号:当用双引号括起来时,变量会被展开。

这就是你的代码抛出错误的原因:“参数太多了。”

答案 1 :(得分: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