
Я пытаюсь сохранить вывод поиска в переменную следующим образом:
a=find /Users/Downloads/DTI_allsites/subprojects/*/UII_0077 -name "dti_preprocessed" -type d
Но я постоянно получаю следующее сообщение:
-баш:
/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[@]}"