분과 초로 수면을 사용하십시오 사용하는 방법을

5 분 동안 5m의 수면을 사용하는 방법을 알고 있습니다.

7 분 30 초 동안 어떻게 사용합니까?



답변

로부터 :

두 개 이상의 인수가 제공되면 해당 값의 합계로 지정된 시간 동안 일시 중지하십시오 .

그래서:

sleep 7m 30s

답변

이를 수행하는 다른 방법은 다음과 같습니다.

sleep 7.5m
man sleep

NUMBER가 정수가 필요한 대부분의 구현과 달리 여기서 NUMBER는 임의의 부동 소수점 수일 수 있습니다.


답변

이미 두 가지 훌륭한 답변이 있지만 조금 확장하고 싶습니다. 아래 명령을 복사하여 터미널에 붙여 넣으십시오.

$ sleep 3d 5h 7m 30.05s &
[1] 7321

그러면 3 일, 5 시간, 7 분 및 30.05 초 동안 절전 상태가되는 두 번째 프로세스가 시작됩니다. 7321내 경우에는 프로세스 ID (PID)가 있습니다.

PID 사용을 확인하려면

$ ps aux | grep sleep
rick      7321  0.0  0.0  14356   660 pts/2    S    22:40   0:00 sleep 3d 5h 7m 30.05s
root     12415  0.0  0.0  14356   700 ?        S    22:41   0:00 sleep 60
rick     12500  0.0  0.0  21292   968 pts/2    R+   22:41   0:00 grep --color=auto sleep

첫 번째 항목은 우리가 관심이있는 항목입니다. 두 번째 항목은 시작시 실행중인 영구 프로그램입니다. 세 번째 항목은 grep 명령 자체에 대한 것입니다.

sleepPID에 의해 생성 된 명령 에 남은 시간 (초)이 얼마 인지 확인하려면7321 다음을 사용할 수 있습니다 . 명령:

$ remaining_sleep_time 7321
277304.05
$ remaining_sleep_time 7321
277296.05
$ remaining_sleep_time 7321
277262.05

~/.bashrc파일에 포함시킬 수있는 명령 코드 :

remaining_sleep_time() { # arg: pid
  ps -o etime= -o args= -p "$1" | perl -MPOSIX -lane '
    %map = qw(d 86400 h 3600 m 60 s 1);
    $F[0] =~ /(\d+-)?(\d+:)?(\d+):(\d+)/;
    $t = -($4+60*($3+60*($2+24*$1)));
    for (@F[2..$#F]) {
      s/\?//g;
      ($n, $p) = strtod($_);
      $n *= $map{substr($_, -$p)} if $p;
      $t += $n
    }
    print $t'
}

답변

명령 절전은 항상 초 단위로 계산됩니다. ((7×60) +30) 초를 사용한 다음 간단히 입력 할 수 있습니다.

수면 450