Uma maneira mais concisa de escrever o que Hennes sugeriu é
(sleep 5; echo foo) &
Como alternativa, se você precisar de mais de alguns segundos, poderá usar at
. Existem três maneiras de dar um comando para at
:
Pipe it:
$ echo "ls > a.txt" | at now + 1 min
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Salve o comando que você deseja executar em um arquivo de texto e passe esse arquivo para at
:
$ echo "ls > a.txt" > cmd.txt
$ at now + 1 min < cmd.txt
warning: commands will be executed using /bin/sh
job 3 at Thu Apr 4 20:16:00 2013
Você também pode passar at
comandos do STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Em seguida, pressione CtrlDpara sair do at
shell. O ls
comando será executado em um minuto.
Você pode dar tempos muito precisos no formato de [[CC]YY]MMDDhhmm[.ss]
, como em
$ at -t 201412182134.12 < script.sh
Isso executará o script script.sh
às 21:34 e 12 segundos no dia 18 de dezembro de 2014. Portanto, em teoria, você pode usar at
para executar algo cinco segundos no futuro. No entanto, é como usar um tanque para golpear uma mosca, e a sugestão de Hennes é melhor.
;
?