터미널에서 특정 시간에 대화형으로 명령 실행

터미널에서 특정 시간에 대화형으로 명령 실행

비슷한 명령이 있지만 sleep주어진 시간에 명령이 시작되도록 주어진 시간을 지정할 수 있습니까?인터렉티브현재 열려 있는 터미널 창에서요?

명령을 알고 있지만 at현재 열려 있는 터미널 창에서 대화형으로 실행되지 않기 때문에 작동하지 않습니다.

새벽 4시에 터미널에서 명령을 시작해야 합니다. 잠에서 깨어나자마자 명령을 입력하고 Enter를 누르세요.

제가 생각하는 가장 가까운 해결책은 잠자리에 들기 전 04:00까지 남은 시간(초)을 계산한 다음 sleep명령을 사용하는 것입니다. 그러나 그것은 추악했습니다. 이를 수행하는 더 좋은 방법이 있어야 합니다.

답변1

"추악한" 부분이 단지 수면 시간을 계산하는 것이라면 네 가지 명령을 사용하여 스크립트를 작성할 수 있습니다. 입력 지연을 피하기 위해 (사용하여) 단일 명령으로 만들었지만 ; \대신 스크립트로 작성할 수 있습니다. 이것은 한 번만 수행되며 sleep반복이 필요하지 않습니다.

절전 명령 표시: 실제 지연을 원할 경우 echo이 단어를 생략하세요 . echo선행 $합계는 >사용자가 입력한 내용이 아니라 쉘 프롬프트입니다.

$ Now=$( date '+%s' ); \
> End=$( date -d '0400 tomorrow' '+%s' ); \
> date -d "+ $(( End - Now )) seconds"; \
> echo sleep $(( End - Now ));
Sun 28 Apr 04:00:00 BST 2024
sleep 64036
$ 

관련 정보