Arrays Shell Bash-将多行字符串拆分为数组

Arrays Shell Bash-将多行字符串拆分为数组,arrays,linux,bash,shell,Arrays,Linux,Bash,Shell,我正在尝试获取一个数组,其中包含每个字符串行作为一个元素 stringy=$(ls -l | awk '{print$3,$6,$7,$8,$9}'| grep "$USER") declare -a myarray=() IFS="\n" read myarray <<< "$stringy" echo "${myarray[0]}" echo "${myarray[1]}" echo "${myarray[2]}" for line in "${myarray[@]

我正在尝试获取一个数组,其中包含每个字符串行作为一个元素

stringy=$(ls -l | awk '{print$3,$6,$7,$8,$9}'| grep "$USER")

declare -a myarray=()

IFS="\n" read myarray <<< "$stringy"

echo "${myarray[0]}"
echo "${myarray[1]}"
echo "${myarray[2]}"

for line in "${myarray[@]}"; do
    echo "$line"
done
(……)

即使对于循环,代码也只输出第一个元素(0):

>brunor Nov 17 17:38 22735
>
>
>brunor Nov 17 17:38 22735

主要问题是,您将
myarray
作为常规变量而不是数组来读取。改用
readarray

readarray -t myarray <<< "$stringy"
readarray-t myarray您确定“do”之前应该有“;”吗?看起来像是;正在确保循环只运行一次。
readarray -t myarray <<< "$stringy"