내 'at' 절 명령이 쉘을 즉시 실행하고 시간 제한을 무시하는 이유는 무엇입니까?

내 'at' 절 명령이 쉘을 즉시 실행하고 시간 제한을 무시하는 이유는 무엇입니까?

나는 이름이 붙은 쉘을 썼다.t.sh 그 내용은 다음과 같습니다:

touch 88888

내가 사용하는 명령은

sh t.sh | at 03:13Jun15

이 명령을 실행하면 화면에 다음과 같은 내용이 표시됩니다.

warning: commands will be executed using /bin/sh
job 9 at Sun Jun 15 03:13:00 2014

이것은 2014년 6월 15일 일요일 03:13:00에 실행될 것이라는 것이 매우 분명합니다.

하지만 내 폴더를 확인해보니 거기에 88888 파일이 존재하는 것을 발견했습니다. 그것을 제거하고 agian을 시도했지만 여전히 동일한 결과입니다.

여기에 무슨 문제가 있습니까? bash/sh가 될까요? /bin/sh에 의해 실행될 것이라는 것을 보았기 때문에?

답변1

at표준 입력 또는 플래그를 지정한 경우 파일에서 명령을 읽습니다 -f. 무엇을 sh t.sh | at [time]하는가:

1. execute the shell script t.sh *right now*; 
2. pipe the output of the shell script to at. 

하지만 스크립트에는 출력이 없으므로 일요일에 실행할 것이 없습니다.

당신이 원하는 것은 입니다 at 03:13Jun15 -f t.sh.

관련 정보