我试图以这种方式将查找输出保存到变量中:
a=find /Users/Downloads/DTI_allsites/subprojects/*/UII_0077 -name "dti_preprocessed" -type d
但我不断收到以下消息:
-bash:
/Users/Downloads/DTI_allsites/subprojects/UII_B/UII_0077:是一个目录
每当我尝试使用该命令时,请使用以下命令回显路径:
echo $a
我没有在变量中保存任何内容。我怎样才能解决这个问题?
答案1
由于find
返回文件路径列表,因此您需要使用数组变量。由于文件路径可以包含除 NUL 之外的任何字符,因此您需要使用-print0
NUL 并拆分结果
与bash4.4
+:
readarray -td '' list < <(find ... -print0)
so-something-with "${list[@]}"