몇 분 후에 파일에 추가하고 싶습니다.
나는 순진하게도 이렇게 할 수 있다고 생각했습니다.
echo "hello world" >> /tmp/foo.txt | at NOW + 1 MINUTE
그러나 이는 즉시 파일에 추가됩니다.
나는 시도했다:
echo "hello world" | at NOW + 1 MINUTE >> /tmp/foo.txt
그러나 이것은 전혀 출력을 작성하지 않습니다.
나는 내가 할 수 있는 일을 안다:
$ at NOW + 1 MINUTE
warning: commands will be executed using /bin/sh
at> echo "HElllo world" >> /tmp/foo.txt
at>
at> <EOT>
job 11 at Wed Feb 17 17:58:00 2021
그러나 그것은 "속임수"처럼 느껴집니다.
구분자를 사용하지 않고 원하는 것을 어떻게 표현하나요?
답변1
성공적인 명령의 STDOUT을 리디렉션하는 at
것은 원하는 것이 아닙니다.
"" 를 수행하는 "at" 작업을 생성하려면 echo "Hello, world"
백슬래시( \
)를 사용하여 다음 문자가 서로 다른 특수성을 갖게 합니다(문자가 특수한 경우 특수하지 않은 것으로 처리되거나 특수하지 않은 경우). , 특별하게 취급됩니다).
at
수행 하다
echo "Hello, world"
이 명령을 에 보내야 합니다 at
.
echo "echo \"Hello world\"" | at ...
또 다른 접근 방식은 두 가지 형태의 인용을 사용하는 것입니다.
echo 'echo "Hello, world"' | at ...