我搜索了这个,但条款显然过于笼统。我正在编写一个脚本来搜索一组.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