Você não está dando nenhuma informação sobre o que e como você está compilando. No entanto, na maioria dos casos, o compilador retornará um sinal de saída bem-sucedido se compilado corretamente para que você possa usar os recursos do shell diretamente:
$ gcc -o foo.bin foo.c && echo YES || echo NO
YES
$ gcc -o foo.bin foo.txt && echo YES || echo NO
foo.txt: file not recognized: File truncated
collect2: error: ld returned 1 exit status
NO
Então, no seu caso, você provavelmente poderia simplesmente executar
$ complile_command && scp binary user@server:/remote/path