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

how to read files listed by ls command one by one in bash?

我想读取特定目录下的所有文件,我想一个一个读取。

这是我到目前为止所做的。 ls 成功获取了指定目录下的所有文件,但无法将文件名一一给我。它只回显文件一次。我想一个一个地得到它,因为我需要做一些解析并在某个地方使用它。

#!/bin/sh

echo Content-type: application/json
echo ""

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

你可以做到

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

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

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

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

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

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