首页 > 解决方案 > shell 将 awk 拆分为数组

问题描述

您好,我尝试将 awk 拆分为一个数组。我有这个脚本:

#!/bin/bash

vms_disks=( "${vms_disks[@]}" "$(virsh domblklist $vm --details | awk '/disk/{print $4}')" )
for disk in "${vms_disks[@]}"; do
  echo "upload $disk"
done

该脚本应该"$vm"在一个阵列中获取虚拟机的驱动器"${vms_disks[@]}""${vms_disks[@]}"但是这个脚本只用一个键填充数组。echo 的输出应该是:

upload disk1.raw
upload disk2.raw
...

(为每个磁盘上传)

但我得到:

upload disk1.raw disk2.raw ...

(所有磁盘一起只上传一个)

如何从中获取数组键"$(virsh domblklist $vm --details | awk '/disk/{print $4}')"

怎么做?

标签: shellawk

解决方案


Could you please try following, haven't tested it since lack of samples.

mapfile -t myarr < <(virsh domblklist $vm --details | awk '/disk/{print $4}')

推荐阅读