Bash
使用 find exec 推入數組
我想遍歷找到的所有文件
find
並將每個文件添加到數組中。這是我到目前為止所擁有的:myarray=() find . -name '*.php' -exec myarray\+=\({}\) \; echo "${myarray[@]}"
相反,它會產生很多這樣的:
find: myarray+=(./somedir/somefile.php): No such file or directory
有沒有辦法通過適當的轉義來完成這項工作?
你的方法應該如下。為了保持你的思維方式,你會做這樣的事情:
myarray=() while IFS= read -rd '' files; do myarray+=("$files") done < <(find . -type f -name '*.php' -print0) printf '%s\n' "${myarray[@]}"
作為旁注。您根本不需要定義
myarray=()
數組變數。你可以忽略它。