Em primeiro lugar, nunca faz sentido dizer
if condition; then do something elif condition is false; then do something different fi
Porque, se condition
não for verdadeiro, você sabe que é falso.
Você pode apenas dizer
if condition; then do something else do something different fi
Agora pense na lógica do seu script.
É um algoritmo n 2 - ou, para ser mais preciso,
se $chain
for m palavras longas, e o arquivo for n linhas longas,
então o código pode potencialmente fazer loop em m × n vezes.
Agora pense no que isso significa para o seu problema:
Você está dizendo que $i
é um novo usuário
se você encontrar qualquer usuário ( $user
) no arquivo diferente.
Mas $i
é apenas um novo usuário
if todos os usuários no arquivo é diferente de $i
.