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"