使用shell脚本读取目录的内容

使用shell脚本读取目录的内容,shell,directory-listing,Shell,Directory Listing,我正在尝试使用shell脚本获取目录的内容 我的剧本是: for entry in `ls`; do echo $entry done 但是,我的当前目录包含许多名称中带有空格的文件。在这种情况下,该脚本将失败 在shell脚本中循环目录内容的正确方法是什么 PS:我使用bash。不要在for循环中使用ls解析目录内容。您将遇到空白问题。改用shell扩展 for entry in * do echo "$entry" done for file in * do

我正在尝试使用shell脚本获取目录的内容

我的剧本是:

for entry in `ls`; do
    echo $entry
done
但是,我的当前目录包含许多名称中带有空格的文件。在这种情况下,该脚本将失败

在shell脚本中循环目录内容的正确方法是什么


PS:我使用bash。

不要在for循环中使用
ls
解析目录内容。您将遇到空白问题。改用shell扩展

for entry in *
do
  echo "$entry"
done
   for file in *
    do
      if [ -f "$file" ];then
       echo "$file"
      fi
    done

也许你应该使用“for entry in**”?@Jonathan:如果你需要匹配以
开头的文件,那么你最好旋转
dotglob
选项。什么是
dotglob
选项?当设置
dotglob
时(通过
shopt-s dotglob
*
将匹配以
开头的文件。您已经接受了此问题的答案。创建一个新的。非常相关的问题:这就是bash语法。试试看。记住变量周围的双引号。这将保留空白。只是不要在
for循环中使用
ls