이 at
명령을 사용하면 나중에 한 번 스크립트를 실행할 수 있습니다.
at now + 1 minutes -f ~/script.sh
또는 문자열 명령을 실행하십시오지금그런 다음 향후 결과를 반환합니다.
echo "xyz" >> ~/testtest.txt | at now + 1 minute
지금(예 1) 대신 미래에 실행되는 문자열 명령(예 2)을 어떻게 전달할 수 있나요? 예를 들어
at now + 1 minutes -SOMEFLAG 'echo "xyz" >> ~/testtest.txt'
감사해요
답변1
나중에 명령줄에서 실행할 스크립트를 전달하려면 여기 문서를 사용하세요.
at now + 1 minute <<'END_AT'
echo 'xyz' >> ~/testtest.txt
END_AT
현재 쉘이 스크립트 텍스트에서 변수 등을 확장하는 것을 방지하기 위해 여기에 있는 문서가 참조됩니다( <<'END_AT'
대신 사용하여). <<END_AT
문서는 at
표준 입력을 통해 전달됩니다.
답변2
명령을 작은따옴표로 묶고 at
있는 그대로 전달할 수 있습니다.
echo 'echo "xyz" >> ~/testtest.txt' | at now + 1 minutes
또는 bash 또는 기타 지원되는 스크립트를 사용하는 경우프로세스 교체, 넌 할 수있어:
at now + 1 minutes < <(echo 'echo "xyz" >> ~/testtest.txt')
at
이는 기본적으로 명령으로 파일을 전달하는 것과 마찬가지로 파일 이름을 전달합니다 .
그러나 heredoc을 다음과 같이 사용하십시오.쿠사로난다 조언프로세스 교체를 지원하기 위해 셸에 의존하지 않으므로 이식성이 더 높아야 합니다.