bash排序数组麻烦

时间:2018-03-20 13:27:23

标签: arrays bash ifs

我的第一个排序声明效果很好,但由于某种原因,我的第二个排序声明不起作用,并且不会抛出任何错误。我无法发现问题。请建议我可以改进这个脚本的方法。我知道它真的很乱。

#!/bin/bash


testarr0=(37 32 11 31 41 10) 
#target ticket
testarr1=[];
#sort target ticket array


IFS=$'\n' testarr00=($(sort <<<"${testarr0[*]}"))
unset IFS


cou0=0
input="test_tickets0"
while IFS= read -r ticket0
do
IFS=',' read -ra digit0 <<< "$ticket0"
for i in "${digit0[@]}"; do
remv0="${i//]}"
remv1="${remv0//[}"


if [ $cou0 -eq 6 ];then
cou0=0
#sort array
IFS=$'\n' testarr11=($(sort <<<"${testarr1[*]}"))
unset IFS
#compare arrays
echo "${testarr00[@]}"
echo "${testarr11[@]}"
if [[ "[]${testarr00[@]}" == "${testarr11[@]}" ]];then
echo "match"
fi
testarr1=[]
fi
cou0=$((cou0+1))

if [ $cou0 -lt 7 ];then  
#push into array  
testarr1+=$remv1

fi

done
done < "$input"

0 个答案:

没有答案