我正在回圈遍歷 bash 腳本中的檔案,并且在大多數情況下它正在作業,但目錄名稱被回顯了兩次。我如何更改代碼以僅回顯目錄中的檔案而不是目錄本身。
這是我的代碼:
Directory=C:/temp/
find $Directory
for filename in "$Directory"/;
do
echo $filename
done
這是我在終端中看到的:
C:/temp/
C:/temp/QJ07312433_10_19_2021_snapshot.xml
C:/temp/QJ07312433_10_28_2021_snapshot.xml
C:/temp/
uj5u.com熱心網友回復:
該find命令列印以$Directory.為首的層次結構中的所有名稱。然后回圈遍歷單個 string $Directory/,并回顯它。這就是為什么您會得到目錄名稱的第二個回顯。
如果希望回圈處理回圈中的find輸出,則需要通過管道傳遞給它:
find "$Directory" | while read -r name; do
echo "$name"
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/346038.html
下一篇:如何使用vi命令重新編號行?
