当我运行此命令时 -sleep 10
终端等待 10 秒。sleep
对终端的操作也是如此。当我这样做时会发生什么sleep 10 &
?在第一种情况下,它在终端上运行,但在后台它在做什么?特别是是什么东西sleep
试图让你入睡?
答案1
虽然sleep
将在后台运行,但它不会执行其预期目的,即延迟脚本中的另一个任务。
例子:
echo "foo" && sleep 10s && echo "bar"
将打印 foo,等待 10 秒,然后打印 bar。第二个echo
将等到 sleep 退出,并且仅在运行成功时才开始执行。
echo "foo" && sleep 10s & echo "bar"
将打印 foo, invoke sleep
,它将发送到后台并立即执行第二个echo
,因为前台没有进程需要等待。