Более краткий способ написания того, что предложил Хеннес:
(sleep 5; echo foo) &
Кроме того, если вам нужно больше, чем несколько секунд, вы можете использовать at
. Есть три способа дать команду at
:
Труба это:
$ 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
Сохраните команду, которую хотите запустить, в текстовом файле, а затем передайте этот файл по 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
Вы можете также передать at
команды из STDIN:
$ at now + 1 min
warning: commands will be executed using /bin/sh
at> ls
Затем нажмите Ctrl + D , чтобы выйти из at
оболочке. Команда ls
будет запущена через одну минуту.
Вы можете указать очень точное время в формате [[CC]YY]MMDDhhmm[.ss]
, как в
$ at -t 201412182134.12 < script.sh
Это запустит скрипт script.sh
в 21:34 и 12 секунд 18 декабря 2014 года. Таким образом, теоретически, вы можете использовать at
для запуска чего-то на пять секунд в будущем. Однако это похоже на использование танка, чтобы ударить муху, и предложение Хеннеса лучше.