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
atdo STDIN:$ at now + 1 min warning: commands will be executed using /bin/sh at> lsEm seguida, pressione Ctrl D para sair do shell
at. O comandolsserá 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.