Acredito que descobri que o problema é causado pelo script executando todos os comandos (exceto o primeiro) em segundo plano. Eu posso forçar o primeiro comando a ter o mesmo problema, bifurcando-o com &
.
Depois de não conseguir encontrar uma maneira de fazer o script executar cada comando em primeiro plano, um após o outro, eu encontrei uma solução alternativa ...
Eu posso colocar todos os comandos em um arquivo screenrc personalizado (por exemplo, my_screenrc) como tal:
# Import default screenrc
source ${HOME}/.screenrc
# Run screen-specific commands (not bash ones)
screen # Run bash in window 0
screen vim # Run vim in windows 1 through 3 (with correct settings)
screen vim
screen vim
Eu posso então executar isso do bash com:
screen -c my_screenrc