Difference between wait and sleep

十年热恋 提交于 2019-11-27 04:01:46

问题


What is difference between wait and sleep?


回答1:


wait waits for a process to finish; sleep sleeps for a certain amount of seconds.




回答2:


wait is a BASH built-in command. From man bash:

    wait [n ...]
        Wait  for each specified process and return its termination sta-
        tus.  Each n may be a process ID or a job  specification;  if  a
        job  spec  is  given,  all  processes in that job's pipeline are
        waited for.  If n is not given, all currently active child  pro-
        cesses  are  waited  for,  and  the return status is zero.  If n
        specifies a non-existent process or job, the  return  status  is
        127.   Otherwise,  the  return  status is the exit status of the
        last process or job waited for.

sleep is not a shell built-in command. It is a utility that delays for a specified amount of time.

The sleep command may support waiting in various units of time. GNU coreutils 8.4 man sleep says:

    SYNOPSIS
        sleep NUMBER[SUFFIX]...

    DESCRIPTION
        Pause for NUMBER seconds.  SUFFIX may be ‘s’ for seconds (the default),
        ‘m’ for minutes, ‘h’ for hours or ‘d’ for days.  Unlike most  implemen-
        tations  that require NUMBER be an integer, here NUMBER may be an arbi-
        trary floating point number.  Given two or more  arguments,  pause  for
        the amount of time specified by the sum of their values.



回答3:


sleep just delays the shell for the given amount of seconds.

wait makes the shell wait for the given job. e.g.:

workhard &
[1] 27408
workharder &
[2] 27409
wait %1 %2

delays the shell until both of the subprocesses have finished




回答4:


Bash

wait command stop script execution until all jobs running in background have terminated or until the job number or process id specified as an option terminates

wait%1 or wait $PID
wait ${!}

wait ${!} means "to wait till the last background process is completed" ($! being the PID of the last background process)

Sleep

add delay for a specified amount of time.

sleep NUMBER[SUFFIX]
sleep 5 (sleep five seconds)



回答5:


Try this:

sleep 10 &
wait %1


来源:https://stackoverflow.com/questions/13296863/difference-between-wait-and-sleep

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!