Você pode usar bloqueios de arquivo para realizar isso com bastante facilidade.
Crie 2 scripts com o seguinte conteúdo. Execute o terminal Um script primeiro, depois B.
Terminal A:
touch /tmp/lockfile
flock -x /tmp/lockfile read -p 'press enter to begin'
command_a
Terminal B:
flock -x /tmp/lockfile true
command_b
Pressione Enter no terminal A quando estiver pronto para começar.
A maneira como funciona é que o primeiro flock
captura um bloqueio exclusivo em /tmp/lockfile
e mantém esse bloqueio até você pressionar Enter .
O segundo flock
também tenta pegar um bloqueio exclusivo, mas está bloqueado porque o bloqueio já está retido. Assim que o primeiro flock
libera o bloqueio, o segundo executa /bin/true
, que imediatamente retorna, e assim os comandos continuam.
Sim, isso significa que command_a
começará uma pequena fração de segundo antes de command_b
. Mas no script de shell, esses atrasos serão inevitáveis de qualquer forma, então não importa.
Dependendo do seu sabor do linux, talvez você não tenha /bin/read
. Você pode realizar o mesmo fazendo flock ... bash -c "read -p 'press enter to begin'"