我有一個以元音結尾的檔案名變數。我需要一次洗掉所有這些檔案。我試過使用
rm "$vowels"
但這似乎只回傳變數中的檔案并宣告“沒有這樣的檔案或目錄”
uj5u.com熱心網友回復:
它是您使用的引號:它們告訴 rm 您的變數內容將被解釋為單個引數(檔案名)。如果沒有引號,內容將使用有效的 shell 規則分解為多個引數。
請注意,如果您的檔案名包含空格,這可能會有風險 - 因為無法區分檔案名之間的空格和檔案名中的空格。
您可以通過使用陣列并使用帶引號的陣列擴展來解決此問題(我不記得它的語法,但可能看起來像rm "${array[@]}"- 陣列中的每個元素都將作為帶引號的字串輸出)。
uj5u.com熱心網友回復:
解決方案
分配變數
vowel=$(find . -type f | grep "[aeiou]$")
洗掉變數中的所有檔案
echo $vowel | xargs rm -v
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/383530.html
