我试图使用shell脚本获取目录的内容。使用shell脚本读取目录的内容
我的脚本是:
for entry in `ls`; do
echo $entry
done
然而,我的当前目录包含在其名称中的空格许多文件。在这种情况下,该脚本失败。
在shell脚本中循环目录内容的正确方法是什么? PS:我使用bash。
我试图使用shell脚本获取目录的内容。使用shell脚本读取目录的内容
我的脚本是:
for entry in `ls`; do
echo $entry
done
然而,我的当前目录包含在其名称中的空格许多文件。在这种情况下,该脚本失败。
在shell脚本中循环目录内容的正确方法是什么? PS:我使用bash。
for entry in *
do
echo "$entry"
done
+1是正确的,比我快! :-P – Buggabill 2010-03-12 19:53:07
也许你应该使用'进入*。*'? – 2010-03-12 19:53:27
@Jonathan:如果你需要匹配以'。'开头的文件,那么你最好在twiddling'dotglob'选项。 – 2010-03-12 19:56:14
在for循环中不使用ls
解析目录内容。你会遇到空白问题。使用外壳扩展代替
for file in *
do
if [ -f "$file" ];then
echo "$file"
fi
done
更新了问题.. – jrharshath 2010-03-13 05:36:04
这是bash语法。试试看看。记住变量的双引号。这将保留空格。只是不要在'for循环中使用'ls' – ghostdog74 2010-03-13 06:17:52
非常相关的问题:http://stackoverflow.com/questions/2437452 – jrharshath 2010-03-13 06:11:59