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에서 연결이 해제되어 원하더라도 상호 작용할 수 없습니다.