clcampos, consegui resolver só tive que ler um pouco mais o livro do Julio Cezar (que é um ótimo material) como falei dependendo do que ia fazer ele não estava esperando terminar por exemplo a compactação de uma pasta e pulava para o próximo comando, achei duas opções que varia muito e vou compartilhar aqui.
Uma delas seria o sleep que faz o programa para por um terminado tempo, ex:
sleep 30
Ia deixar o programa parado por 30 minutos (se não me engano)
E não ia se aplicar para mim, pq o tamanho do arquivo poderia variar ou sobrar muito tempo ou faltar tempo.
E pode usar o && que foi que atendeu a minha necessidade. A sintaxe é
comando1 && comando2 && ...
Assim ele só vai executar o proximo comando quando terminar de fazer o primeiro.