我不能讓這個簡單的腳本在 bash 中作業
# Works
for f in *; do
for j in $f/Attachments/*.pdf; do
echo "$j"
done;
done
# Doesn't work
for f in *; do
for j in $f/Attachments/*.pdf; do
if [ ! pdfinfo "$j" &> /dev/null ]; then
echo "$j"
fi
done;
done
我已經閱讀了 10 多個指南,但我無法理解為什么這個腳本會列出一堆隨機目錄。
它應該:
- 列出當前目錄中的檔案夾
- 在每個檔案夾中,它應該列出子目錄附件中的所有 PDF 檔案
- 對于每個檔案,它應該檢查它是否損壞,如果是,則列印它
uj5u.com熱心網友回復:
你想要的可以通過這個代碼片段來實作:
for f in */Attachments/*.pdf; do
if ! pdfinfo "$f" &>/dev/null; then
echo "$f"
fi
done
在您的代碼中,for f in *遍歷所有檔案(包括目錄)。如果您只想要目錄,則必須使用for f in */. 像那樣:
for d in */; do
for f in "$d"Attachments/*.pdf; do
[[ -f $f ]] || continue
if ! pdfinfo "$f" &>/dev/null; then
echo "$f"
fi
done
done
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/510368.html
上一篇:如何在Flutter中有條件地隱藏串列圖塊中的內容?
下一篇:如何只顯示成績
