
我試圖以這種方式將查找輸出保存到變數中:
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[@]}"