Control-Z suspende um trabalho (não a linha de comando do seu shell), então todos os outros comandos serão executados sem esperá-lo. Parece que quando você para um trabalho, o shell tenta executar o próximo, mas como você usou &&
e o comando anterior não foi concluído OK (não foi concluído, mas pausado), o comando com & & é descartado. Por outro lado, se você usar ;
em vez de &&
para um segundo comando na linha de comando, verá que o segundo comando é executado quando o primeiro é pausado:
$ perl -e '$|=1;for (1..5){ sleep 1;print}print qq{END\n} ';echo test_z00000000000000
12^Z
[1]+ Stopped perl -e '$|=1;for (1..5){ sleep 1;print} '
test_z00000000000000
$ fg
perl -e '$|=1;for (1..5){ sleep 1;print} '
345END
$