我正在尝试使用shell脚本获取目录的内容。
我的脚本是:
for entry in `ls`; do
echo $entry
done
但是,我当前的目录包含许多名称中带有空格的文件。在这种情况下,此脚本失败。
在shell脚本中循环遍历目录内容的正确方法是什么?
PS:我使用bash。
答案 0 :(得分:13)
for entry in *
do
echo "$entry"
done
答案 1 :(得分:3)
不要在for循环中使用ls
解析目录内容。你会遇到白色空间问题。改为使用shell扩展
for file in *
do
if [ -f "$file" ];then
echo "$file"
fi
done