如何在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脚本调用的第二个脚本。
答案 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
如果操作系统在指定时间未运行,则该命令将在可用时立即执行。