if 遞迴尋找 ext, then, else 在 unix 上

if 遞迴尋找 ext, then, else 在 unix 上

這是我通常使用的。但我需要遞歸地找到帶有 then 和 else 的擴充。這個問題的問題在於它不是遞歸的。

if ls $HOME/Downloads/*.ext >/dev/null 2>&1
then
    :
else
    :
fi

答案1

使用find而不是 ls。如果您有 GNU find,則可以-quit在第一個符合後使用退出。然後檢查它是否會傳回任何結果。

該腳本看起來像

if [ -n "$(find $HOME/Downloads -name '*.ext' -print -quit | head -n 1)" ]
then
    :
else
    :
fi

使用 -iname 而不是 -name 進行不區分大小寫的搜尋。

相關內容