cron의 쉘 스크립트에 매개변수로 퍼센트 기호(%)가 포함된 파일 이름을 전달하려면 어떻게 해야 합니까? [복사]

cron의 쉘 스크립트에 매개변수로 퍼센트 기호(%)가 포함된 파일 이름을 전달하려면 어떻게 해야 합니까? [복사]

현재 우리는 다음과 같이 새 스크립트에 대한 cron 작업을 설정했습니다.

46 22 * * * /gzm_common/diagbat9/global/prod/chgstatus.sh /backups/diagbat9/Demantra/output/SK_ITEM_EXTRACT_MFGPRO_$(date +%m%d%y).txt

.txt 확장자를 가진 파일을 인수로 사용합니다. 이 파일은 cron 작업이 실행될 때 생성되지 않습니다. 이것은 우리가 오후 22시 46분에 얻은 파일입니다:

22:46    SK_ITEM_EXTRACT_MFGPRO_

이 파일은 0바이트 파일이지만 많은 데이터를 포함해야 합니다. 전체 파일 경로와 이름을 큰따옴표로 묶어야 합니까?

답변1

백슬래시를 사용하여 백분율 문자를 이스케이프해야 합니다.

.../SK_ITEM_EXTRACT_MFGPRO_$(date +\%m\%d\%y).txt

crontab(5)매뉴얼 페이지 에서ISC 구현cron:

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

관련 정보