Arrays 带有新行作为IFS的bash数组

Arrays 带有新行作为IFS的bash数组,arrays,bash,Arrays,Bash,为什么这不能产生预期的结果 IFS=$'\n'; read -a list <<< `lsblk` ; echo ${list[*]}; IFS=$'\n';阅读-一份清单也许你正在寻找: IFS=$'\n'; readarray list < <(lsblk) 您可能需要使用-l标志来获取设备列表,因为默认情况下,lsblk输出在某些树视图中。(我没有lsblk,但有了lsusb,我得到了预期的结果): readarray虽然works不在bsd机器上,但我需

为什么这不能产生预期的结果

IFS=$'\n'; read -a list <<< `lsblk` ; echo ${list[*]};

IFS=$'\n';阅读-一份清单也许你正在寻找:

IFS=$'\n'; readarray list < <(lsblk)

您可能需要使用-l标志来获取设备列表,因为默认情况下,lsblk输出在某些树视图中。(我没有lsblk,但有了lsusb,我得到了预期的结果):


readarray虽然works不在bsd机器上,但我需要它在=/@JamesAndino上,那么“不生产”是什么意思?一个由系统识别的所有块设备组成的阵列否该回音的输出没有引号,尽管信息松散,但仍会产生一个输出,我可以从中判断其工作情况,而不是我的命令输出错误,然后是我的错误输入echo@JamesAndinolsblk不是在某些树中默认生成输出吗格式,也许你想要列表?
for i in ${list[@]}; do echo $i; done
IFS=$'\n'; while read line; do list+=($line); done < <(lsblk)
IFS=$'\n'; read -a list <<< `lsblk -l` ; echo ${list[*]};
list=( $(lsblk -l) ); echo ${list[*]}