如何在bash中逐个读取ls命令列出的文件?

时间:2015-03-09 07:51:14

标签: linux bash ls

我想读取特定目录中的所有文件,我想逐一阅读。

这是我到目前为止所做的。 ls成功获取指定目录下的所有文件,但无法逐个向我提供文件名。它只回传文件一次。我想逐个得到它,因为我需要做一些解析并使用它。

#!/bin/sh

echo Content-type: application/json
echo ""

for output in "ls /home/myComputer/Desktop/*";
do
echo $output
done

2 个答案:

答案 0 :(得分:5)

你可以做到

for output in /home/myComputer/Desktop/*
do
    echo $output
done

如果/home/myComputer/Desktop为空的任何风险,请在下面的评论中关注@JIDs建议。

答案 1 :(得分:0)

当dir为空时,下一个解决方案也有效。

ls /home/myComputer/Desktop/ 2>/dev/null |while read -r output; do
    echo ${output}
done

这种结构很好知道,因为当你想在某些字段中拆分输入行时:

cat someFile | while read -r field1 field2 remainingfields; do