O problema é que você está usando algo que não deveria ser usado, na verdade. Você também tem dois objetivos conflitantes: "executar o programa 2 após o programa 1" e "executar o programa 2 às 17h de 12 de janeiro".
Uma parte do seu problema é simples de resolver: at permite vários comandos. Portanto, em vez de usar apenas at
para agendar o script sas
, você também pode colocar o rm
no trabalho.
at 5:00 PM JAN 11 <<EOJ
sas program1.sas
rm file1.sas7bdat file2.sas7bdat file3.sas7bdat file4.sas7bdat file5.sas7bdat
EOJ
Não há motivo para o &
na linha sas
; at
sempre executa trabalhos "em segundo plano".
Em seguida, você deve descobrir como deseja resolver o conflito mencionado anteriormente. Em particular, se o trabalho de 11 de janeiro não tiver terminado 24 horas depois (até as 17h de 12 de janeiro). Existem algumas maneiras de fazer isso:
- Não é realmente o trabalho de 12 de janeiro. Deve ser executado assim que o programa1.sas terminar. Nesse caso, faça parte do primeiro trabalho acima, assim como o
rm
. - Isso nunca acontecerá. Em caso afirmativo, você irá corrigi-lo manualmente. Nesse caso, basta agendá-lo como o acima.
- Precisa esperar. Nesse caso, você pode programá-lo no final do primeiro no trabalho, ou usar um arquivo de bloqueio ou calcular a quantidade adequada de tempo para dormir (ou usar
sleepenh
, se disponível, para evitar fazer o cálculo) .