crontab 추가 - 구문

crontab 추가 - 구문
crontab -l | { cat; echo "0 0 * * * /path/to/cron/job"; } | crontab -

새로운 크론 작업을 추가하기 위해 웹에서 이 줄을 얻었습니다. 그것은 잘 작동합니다. 마음속에 의심이 들고,

1) 여기서 중괄호가 필요한 이유는 무엇입니까(또는 작은따옴표를 사용할 수도 있음).

{ cat; echo "0 0 * * * /path/to/cron/job"; }

cat;2) 여기에 명령이 필요한 이유는 무엇입니까 ?

3) crontab -.내가 이해한 것이 맞다면 -파이프라인의 이전 명령 출력으로 대체됩니까?

답변1

1) 교정장치가 필요한 이유

의 출력과 의 출력을 cat파이프로 연결 해야 하기 때문입니다. 중괄호가 없으면 두 명령의 출력을 단일 파이프로 조합할 수 없습니다.echocrontab -

(또는 여기서 작은따옴표를 사용할 수도 있습니다)

아니요. ... | 'cat; echo "0 0 * * * /path/to/cron/job"' | ..." cat; echo "0 0 * * * /path/to/cron/job"이름이 지정된 실행 파일에 대한 파이프"를 의미합니다. 이것은 말이 되지 않습니다.

cat;2) 여기에 명령이 필요한 이유는 무엇입니까 ?

넌 몰라. 동일한 콘텐츠를 보다 효율적으로 작성할 수 있습니다.

{ crontab -l; echo '0 0 * * * /path/to/cron/job'; } | crontab -

3) crontab -.내가 이해한 것이 맞다면 -파이프라인의 이전 명령 출력으로 대체됩니까?

예, 하지만 이는 crontab특별히 지원되기 때문입니다. -표현하는 데 사용 stdin및/또는 sdtout많은 명령이 이해하는 규칙이지만 이는 단지 규칙일 뿐입니다. >file또는 와 같은 셸에서는 적용되지 않습니다 | command.

관련 정보