5 분 동안 5m의 수면을 사용하는 방법을 알고 있습니다.
7 분 30 초 동안 어떻게 사용합니까?
답변
답변
이를 수행하는 다른 방법은 다음과 같습니다.
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