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