Shell脚本在延迟后产生一个进程

时间:2009-12-16 14:40:36

标签: bash shell

如何在shell脚本延迟后生成进程?我希望命令在脚本启动后60秒启动,但我想继续运行脚本的其余部分,而不是先等待60秒。这是个主意:

#!/bin/sh
# Echo A 60 seconds later, but without blocking the rest of the script
sleep 60 && echo "A"

echo "B"
echo "C"

输出应为

B
C
... 60 seconds later
A

我需要能够在一个脚本中完成所有这些操作。 IE浏览器。没有创建从第一个shell脚本调用的第二个脚本。

4 个答案:

答案 0 :(得分:37)

&安培;开始后台工作,所以

sleep 60 && echo "A" &

答案 1 :(得分:8)

其他答案的轻微扩展是等待脚本末尾的后台命令。

#!/bin/sh
# Echo A 60 seconds later, but without blocking the rest of the script

set -e

sleep 60 && echo "A" &
pid=$!

echo "B"
echo "C"

wait $pid

答案 2 :(得分:6)

现在不能尝试,但

(sleep 60 && echo "A")&

应该做的工作

答案 3 :(得分:0)

替代:

echo 'echo "A"' | at now + 1 min

如果操作系统在指定时间未运行,则该命令将在可用时立即执行。