我搜索了這個,但條款顯然過於籠統。我正在編寫一個腳本來搜索一組.mp3文件的文件夾。有些文件夾沒有mp3,所以必須排除它們。bash數組總是返回1
我創建了一個數組來保存uniq'd文件夾名稱。這個查找命令將得到我需要的文件夾。
Folders=$(sudo find /my/music/ -type f -name "*.mp3" | cut -d'/' -f7 | sort -u)
當我嘗試計數數組中的文件夾的數量,我總是得到1
echo ${#Folders[@]}
echo ${Folders[@]}
打印出來放在單獨的行,所以我以爲他們是獨立的數組元素。任何人都可以解釋發生了什麼?您可能必須在切割命令中晃動字段編號才能在本地重現。
你在哪裏創建數組? 'Folders = $(...)'不會創建一個數組... – twalberg
如果你的路徑可以包含空格或者glob字符,那麼使用命令替換創建數組是不安全的。 – anubhava
@twalberg - 謝謝!那是我第一次誤會。我也知道得更好! – LHWizard