crontab에서 줄을 이어가기 위해 "\"를 사용할 수 없는 이유는 무엇입니까?

crontab에서 줄을 이어가기 위해 "\"를 사용할 수 없는 이유는 무엇입니까?

이것acme-client(1) 매뉴얼 페이지다음 cron 항목이 권장됩니다.

~   *   *   *   *   acme-client example.com && \
    rcctl reload httpd

편집을 위해 추가하면 crontab다음 구문을 사용할 때 저장되지 않습니다.

crontab: installing new crontab
"/tmp/crontab.nOryzjBTlv":22: bad minute
crontab: errors in crontab file, unable to install
Do you want to retry the same edit? 

하지만 한 줄만 사용하면 많은 비용을 절약할 수 있습니다.

~   *   *   *   *   acme-client example.com && \ rcctl reload httpd

\한 줄을 다음 줄로 계속하는 것이 허용되지 않는 이유는 무엇입니까 ?

답변1

단일 명령줄은 쉘의 후행 "\"와 같이 여러 줄로 분할될 수 없습니다.

그렇다면 다음 단락에서 위의 내용을 찾을 수 있습니다 man 5 crontab. 다음 내용은 Ubuntu 20.04LTS에서 가져온 내용입니다.

"여섯 번째" 필드(줄의 나머지 부분)는 실행할 명령을 지정합니다. 줄의 전체 명령 부분(개행 또는 % 문자까지)은 /bin/sh 또는 crontab 파일의 SHELL 변수에 지정된 쉘에 의해 실행됩니다. 백슬래시(\)로 이스케이프하지 않는 한 명령의 퍼센트 기호(%)는 개행 문자로 변경되고 첫 번째 % 이후의 모든 데이터는 명령에 표준 입력으로 전송됩니다. 단일 명령줄은 쉘의 후행 "\"와 같이 여러 줄로 분할될 수 없습니다.

~에서https://man.openbsd.org/crontab.5
그것은 말한다나머지 줄명령 필드이므로 명령이 여러 줄에 걸쳐 있는 방식에 대해서는 아무 것도 알려주지 않습니다. crontab이 쉘 스크립트와 동일한 구문을 가지고 있다고 가정해서는 안됩니다.

명령 필드(나머지 줄)는 실행할 명령입니다. 줄의 전체 명령 부분(개행 또는 % 문자까지)은 /bin/sh 또는 crontab의 SHELL 변수에 지정된 쉘에 의해 실행됩니다. 백슬래시('\')로 이스케이프하지 않는 한 명령의 퍼센트 기호('%')는 줄바꿈으로 변경되고 첫 번째 '%' 이후의 모든 데이터는 Order에 표준 입력으로 전송됩니다.

관련 정보