簡體   English   中英

如何在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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM