echo 명령을 at 명령과 함께 사용할 수 없는 이유는 무엇입니까?

echo 명령을 at 명령과 함께 사용할 수 없는 이유는 무엇입니까?

내가 입력할 때:

at now + 1 min
at>play /usr/share/sounds/startrek.wav
at>ctrl+d

작동하므로 1분 후에 실제로 소리가 재생됩니다.

그러나 내가 입력할 때:

at now + 1 min
at>echo "Teresa the green vegetable lover"
at>ctrl+d

셸에서 오류 응답을 받지 못하지만 1분 후에도 텍스트가 표시되지 않습니다.

답변1

at에 의해 실행되는 명령은 해당 명령이 등록된 터미널에서 실행되지 않습니다. 일반적으로 이는 의미가 없습니다. 터미널이 더 이상 존재하지 않거나 다른 사용자가 사용할 수 있습니다. 명령이 실행되는 동안 로그아웃될 수도 있습니다.

at 명령의 출력이 이메일로 전송됩니다. 이는 일부 이메일 프로그램에서 설정한 외부 POP 또는 IMAP 계정이 아닌 로컬 Unix 이메일입니다. 로컬 이메일이 설정되지 않으면 이 명령의 출력이 손실됩니다. 로컬 이메일이 설정되지 않은 경우,이 가이드도움이 될 수도 있습니다.

at 명령이 터미널과 상호 작용하도록 하려면 명시적인 리디렉션을 사용해야 합니다. 예를 들어:

echo "echo hello >$TTY" | at now + 1 min

이 코드 조각에서 변수는 TTY셸에 의해 확장되므로 입력은 다음 at과 같습니다 echo hello >/dev/pts/42.

관련 정보