因为我自己陷入了困境,所以我提出了一个问题,并在此给出了答案。如果find
遍历命令找到的内容,则从bash
在子shell中执行该命令。因此,您无法在结果中填充数组并在循环后使用它。
答案 0 :(得分:0)
您必须将语法从以下位置更改:
['A', 'A', 'B', 'C']
到
i=0
find $cont_dirs_abs -type l -exec test -e {} \; -print0 | while IFS= read -r -d '' lxc_storage_abspath; do
lxcname=${lxc_storage_abspath##*/}
...
lxcnames[$i]="$lxcname"
let "i+=1"
done
就我而言,在此循环之后,我可以访问bash数组i=0
while IFS= read -r -d '' lxc_storage_abspath; do
lxcname=${lxc_storage_abspath##*/}
...
lxcnames[$i]="$lxcname"
let "i+=1"
done < <(find $cont_dirs_abs -type l -exec test -e {} \; -print0)
:
$lxcnames
希望对所有人有帮助。