我正在尝试读取一些数据,这些数据具有(N)行,每行具有(M)列。我想阅读它们并将每一列存储到一个单独的数组中,以便以后可以访问它们。
使用/etc/passwd
作为工作示例数据,我已经
i=0
while IFS=":" read c1 c2; do
X+=($c1)
Y+=($c2)
i=$(($i+1))
done < /etc/passwd
echo ${X[0]}
echo ${Y[1]}
这将按预期工作。但是,如果我想输入输入,就像这样:
i=0
cat /etc/passwd | \
while IFS=":" read c1 c2; do
X+=($c1)
Y+=($c2)
i=$(($i+1))
done
echo ${X[0]}
echo ${Y[1]}
X
行之后的数组Y
和done
都为空。
有什么问题吗?