arr_1=(0)
arr_2=(0)
echo ${arr_1[*]}
sed -i 's/^M//g' datasets_list
cat datasets_list|while read line #循环开始
do
arr=(${line//\\t/})
cdna=${arr[1]}
cdna1=$(find $cdna|xargs ls -Rd|grep 1.fq.gz)
cdna2=$(find $cdna|xargs ls -Rd|grep 2.fq.gz)
arr_1=("${arr_1[@]}" $cdna1)
arr_2=("${arr_2[@]}" $cdna2)
echo ${arr_1[*]} #在此数组更新
done #循环结束
echo ${arr_1[*]} #在此数组不更新
在此脚本中,定义了两个全局数组arr_1和arr_2,然后进入一个循环(以while read line/do 开始,以done结束)
在循环遍历体中,本来应该随着循环更新数组的值,arr_1和arr_2的内容和长度都应该增加或者改变,在测试的过程中,输出数组的值查看,问题就来了
如果在循环体中输出数组,数组是真真实实在改变着,可是出了循环体,到下一步的时候,数组的值又只有初始值0了,这是为什么呢
假如我需要改变全局变量数组的值,以做下一步操作,又应该如何去实现呢?