Não é assim que a ordem de redirecionamento funciona.
A ordem de redirecionamento apenas determina a ordem de ação que o shell faz com a descrição do arquivo, não com seu conteúdo.
Em:
./errorandoutput.sh >file 2>&1
Primeiro, o padrão de redirecionamento do shell para file
e, em seguida, redireciona o erro padrão para o padrão, que agora é apontado para file
, então o padrão e o erro padrão agora vão para file
.
Neste estágio, o shell é feito com redirecionamento. Não tem nada a ver com o conteúdo do arquivo file
.
A ordem do conteúdo em file
é determinada pela ordem dos comandos que você executou dentro do script. Altere seu script para:
#!/bin/bash
ls dflj
echo myecho
e você teria o que queria.