0

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

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

2 回答 2

3

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

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

希望这会奏效。

双引号:用双引号括起来的变量被扩展。

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

于 2013-03-18T04:27:09.370 回答
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
于 2013-03-18T04:30:53.747 回答