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
파이프로 연결 해야 하기 때문입니다. 중괄호가 없으면 두 명령의 출력을 단일 파이프로 조합할 수 없습니다.echo
crontab -
(또는 여기서 작은따옴표를 사용할 수도 있습니다)
아니요. ... | '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
.