bash put命令输出到数组

时间:2019-03-18 22:42:21

标签: bash

我有一条命令

cat test.log | cut -d':' -f1 | sort -u  

返回:8967 4376 0989 4321

我想把它放在数组中,所以我做了

arr=$(cat test.log | cut -d':' -f1 | sort -u)  

我可以用

打印出来
for i in $arr; do  
    echo ${i}  
done  

输出:8967 4376 0989 4321

但是当我尝试通过回显每个元素来访问它

echo ${arr[0]}  

返回1234 1234 1902 4224 5883 8273

echo ${arr[1]}  

不返回任何内容

我也尝试过将每个元素都放入with(sudo code)

for i in command  
arr+=i  

这也不起作用。有人可以告诉我这是什么原因吗?

编辑:
根据查尔斯推荐的帖子,我尝试使用map,但是它给了我一个语法错误。我应该怎么写呢?

mapfile -t my_array < <( cat test.log | cut -d':' -f1 | sort -u )

0 个答案:

没有答案