"at"에 대한 다음 호출이 bash 스크립트를 실행하지 않는 이유는 무엇입니까?

"at"에 대한 다음 호출이 bash 스크립트를 실행하지 않는 이유는 무엇입니까?

test.sh다음 내용으로 호출되는 bash 스크립트를 만들었습니다 .

#!/#bin/bash

echo "Done!"

나는 다음을 입력합니다 bash test.sh | at 1549:

myusername@machine:path$ bash test.sh | at 1549
warning: commands will be executed using /bin/sh
job 4 at Fri Sep  3 15:49:00 2021
myusername@machine:path$ date
Fri Sep  3 15:48:22 EDT 2021
myusername@machine:path$ date
Fri Sep  3 15:49:12 EDT 2021

표시 스크립트가 실행되지 않는 이유는 무엇입니까? 아래와 같이 내 쉘이 bash이기 때문입니까?

myusername@machine:path$ echo $SHELL
/bin/bash

답변1

스크립트를 즉시 실행하고 예약합니다.그 출력실행으로 at. 말할 필요도 없이 이것은 실패할 것이다.

내 생각에 당신이 원하는 것은 이것이다.

#!/bin/bash
echo "Done!"

이라는 파일에 기록했다고 가정합니다 myscript.

실행 가능하게 만드세요:

chmod a+x myscript

그런 다음 15시 49분에 실행 대기열에 추가되고 출력이 캡처됩니다 myscript.log. 출력을 캡처하지 않으면 로컬 UNIX/Linux 계정으로 이메일이 전송되고, 메일 하위 시스템이 전혀 설치되지 않은 경우에는 폐기됨) :

at 1549 <<'X'
./myscript > myscript.log 2>&1
X

답변2

시스템을 통해 실행된 명령의 모든 출력은 at이메일을 통해 전송됩니다.

둘째, 실행될 때 현재 tty에서 연결이 해제되어 원하더라도 상호 작용할 수 없습니다.

관련 정보