원치 않는 결과 없이 crontab에 shebang을 추가할 수 있나요?

원치 않는 결과 없이 crontab에 shebang을 추가할 수 있나요?

이것은 어떤 사람들에게는 학대로 간주될 수도 있지만 아마도 나(그리고 다른 사람들)는 여기서 뭔가를 배울 수 있을 것입니다.

저는 vscode를 사용하고 있는데 최근에 crontab 파일을 편집할 때 1을 강조하는 구문이 없어서 짜증이 납니다 . 간단한 해결책은 쉘 스크립트 강조 표시를 사용하는 것입니다. 하지만 vscode는 확장자가 없는 파일에 이 강조 표시 구성표를 로드하지 않습니다.Shebang으로 시작하지 않으면.

그렇다면 crontab 파일이 실행 파일이 아니라는 점을 감안할 때(파일이 권한 644를 가진 루트 소유 Ubuntu 시스템에 있다고 가정합니다) #!/bin/bash파일 맨 위에 배치할 수 있습니까? 이것은 실제로 vscode에서 올바른 강조 표시 체계를 설정하고 cronjob은 평소처럼 잘 실행됩니다. 내가 아는 한, Shebang은오직파일이 실행 가능한지 여부를 구문 분석합니다.

따라서 문제는 이것이 얼마나 나쁜지(모범 사례 관점에서), 그리고 앞으로 예상치 못한 문제(기능 및/또는 보안 관련)에 직면하게 될 것인가입니다.

참고: 이는 중복되지 않습니다.이 문제다른 사람들은 crontab 파일 자체에 (쓸모없는) shebang을 넣고 싶기 때문에 그것을 좋아합니다.

1참고 : 예확장crontab 강조 표시에 사용되지만 현재는 여기에 관련되지 않은 다른 제한 사항이 있습니다.

답변1

man -s 5 crontab에 따르면:

공백이 아닌 첫 번째 문자가 파운드 기호(#)인 줄은 주석이므로 무시됩니다.

shebang은 데이터 파일의 첫 번째 줄에 이상한 설명을 제공합니다.

환경에 대한 다양한 crontab 확장이 있지만 주석 규칙을 수정할 수 있을 것 같지 않습니다(예: #pragma-type 설정 사용).

그러나 파일을 실행 가능하게 만들지 않는 것이 가장 좋습니다. 이 모든 것*은 매우 불쾌한 방식으로 확장될 수 있습니다.

관련 정보