Você está fazendo muito difícil. Este código é configurado para executar os três comandos concorrentemente , e você está tendo que trabalhar com bloqueios e tal para forçá-lo a executar consecutivamente . Eu não acho que você precise de screen
aqui.
Tente substituir os comandos screen
pelo comando que eles chamam. Isto é, substitua
screen -d -m -L -S "Screen PID for script #1" ./script1.sh "$PortStart"
com
./script1.sh "$PortStart"
Em seguida, elimine todos os comandos de bloqueio. Você deve acabar executando os três scripts em ordem.