我的代码不起作用。在if
- 声明中,它说“论证太多”。我知道有其他方法可以做到这一点,但我想知道我的代码有什么问题。
for fname in "*"
do
h=$fname
if [ -f $h ]
then
echo $fname
fi
done
答案 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