我有以下srcipt,它应该显示目录中的所有文件夹,但目前脚本列表还包含/ var / www
下的文件 declare -a dirs
i=1
for d in /var/www/*
do
dirs[i++]="${d%/}"
done
for((i=1;i<=${#dirs[@]};i++))
do
echo $i "${dirs[i]}"
done
我只能更改列表中的文件夹?
答案 0 :(得分:1)
怎么样:
printf "%s\n" /var/www/*/
答案 1 :(得分:0)
您可以检查它是否是目录。说:
[ -d "$d" ] && dirs[i++]="${d%/}"
而不是说:
dirs[i++]="${d%/}"
引用help test
:
-d FILE True if file is a directory.
答案 2 :(得分:0)
for i in *
do
[ -d ${i} ] && echo $i
done
答案 3 :(得分:0)
而不是:
for d in /var/www/*
......这样做(注意尾随/
):
for d in /var/www/*/
它只匹配目录。