Mac OS X에서 정확한 시간에 대한 일정을 예약하고 싶습니다. ‘at’명령이이를 수행하는 가장 간단한 방법 인 것처럼 보입니다.
명령을 사용하여 atrun을 활성화했습니다.
launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
테스트를 위해 다음 행의 BASH 스크립트를 사용하고 있습니다.
echo 'foo' >> path/to/log.txt | at now + 2 minutes
스크립트를 실행하면 다음과 같은 출력이 표시됩니다.
job 17 at Sat May 15 12:57:00 2010
여기서 ’12 : 57 : 00 ‘은 실제로 2 분 후입니다. 그러나 echo 명령은 즉시 실행됩니다. ‘foo’줄이 log.txt에 바로 추가됩니다.
나를 위해 직장에서 어떻게 만들 수 있습니까?
답변
당신은 잘못하고있다. at
명령을 stdin에서 텍스트로 읽으면 파이프 라인에서 마술처럼 명령을 알 수 없습니다.
너의 명령 …
echo 'foo' >> path/to/log.txt | at now + 2 minutes
… 실행 양자 모두 echo
과 at
동시에, 파이프 라인에서. (생각한다 cat somefile | grep sometext
) 그래서 at
그 말을 듣겠다. foo
그 표준에. 그러나, echo
파일로 리디렉션됩니다. at
아무것도받지 못한다.
올바른 명령은 다음과 같습니다.
echo "echo 'foo' >> path/to/log.txt" | at now + 2 minutes