Uma maneira mais concisa de escrever o que Hennes sugeriu é
(sleep 5; echo foo) &
Como alternativa, se precisar de mais do que alguns segundos, você pode usar at
. Existem três maneiras de dar um comando para at
:
-
Encaixe:
$ 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 os comandos
at
do STDIN:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
Em seguida, pressione Ctrl D para sair do shell
at
. O comandols
será executado em um minuto.
Você pode fornecer tempos muito precisos no formato [[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. Assim, em teoria, você pode usar at
para executar algo cinco segundos no futuro. No entanto, isso é meio que usar um tanque para acertar uma mosca, e a sugestão de Hennes é melhor.