Parece que você tem alguns problemas com seu ${team_two[*]}
& ${team_two[k1]}
arrays ou você mexeu com os caracteres de separação na variável especial $IFS
. Você pode ativar a depuração do Bash adicionando um set -x
antes de inserir o loop for externo. Em seguida, desative-o depois com um set +x
para obter mais insights.
set -x
... for loop block ...
set +x
Exemplo
Quando executo seu código pelo Bash dessa maneira, recebo a seguinte saída:
$ bash -x for.bash
++ seq 1 5
+ for i1 in ''seq 1 5''
+ num1=2
++ seq 2 5
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=1
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=2
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=3
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=4
+ for i1 in ''seq 1 5''
+ num1=3
++ seq 3 5
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=5
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=6
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=7
+ for i1 in ''seq 1 5''
+ num1=4
++ seq 4 5
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=8
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=9
+ for i1 in ''seq 1 5''
+ num1=5
++ seq 5 5
+ for k1 in ''seq $num1 5''
+ ky1=_
+ pair_score[$ky1]=10
+ for i1 in ''seq 1 5''
+ num1=6
++ seq 6 5
Editar # 1
Depois de mais atualizações, parece que você redefiniu $IFS
. Normalmente, você vai querer salvar $IFS
em uma variável secundária antes de redefini-la, e a reverterá mais tarde no valor original.
IFSOLD=$IFS
IFS=,
... do IFS , stuff here ...
IFS=$IFSOLD
IFS
Se você tentar esses exemplos, eles poderão ajudar a esclarecer o impacto que o $IFS
pode reproduzir quando usado em um script.
Digamos que eu tenha a seguinte variável:
$ var="1,2,3,4,5"
Agora vamos analisar e imprimir a primeira variável, $c1
:
$ IFS=',' read -r c1 c2 c3 c4 c5 <<< "$var"
$ echo "$c1"
1
No entanto, se alterarmos nosso $IFS
para um espaço.
$ IFS=' ' read -r c1 c2 c3 c4 c5 <<< "$var"
$ echo "$c1"
1,2,3,4,5
Portanto, no segundo exemplo, configuramos o comando read
via $IFS
para dividir em espaços, em vez de vírgulas.