我可以在 crontab 中添加一个 shebang 而不会产生不良后果吗?

我可以在 crontab 中添加一个 shebang 而不会产生不良后果吗?

这可能被一些人认为是滥用,但也许我(和其他人)可以在这里学到一些东西。

我正在使用 vscode,最近在编辑 crontab 文件时,我很恼火没有语法突出显示1。一种直接的解决方法是使用 shell 脚本突出显示。但 vscode 不会在无扩展名文件上加载此突出显示方案如果他们不从shebang开始

因此,鉴于 crontab 文件不是可执行文件(我假设该文件位于 root 拥有的 Ubuntu 系统上,权限为 644),我可以将其放在#!/bin/bash文件的顶部吗?这确实可以在 vscode 中设置正确的突出显示方案,并且 cronjob 可以像往常一样运行良好。据我所知,shebang 是仅有的解析文件是否可执行。

所以问题是,这有多糟糕(从最佳实践的角度来看)以及我是否会面临未来不可预见的问题(功能和/或安全相关)?

注意:这不是重复的这个问题其他人喜欢它,因为我想在 crontab 文件本身中放置一个(无用的)shebang。

1注:有一个扩展用于 crontab 突出显示,但目前它还有其他与此处无关的限制。

答案1

根据 man -s 5 crontab:

第一个非空格字符是井号 (#) 的行是注释,会被忽略。

shebang 只是在第 1 行给数据文件一个奇怪的注释。

环境有各种 crontab 扩展,但似乎不太可能修改注释规则(例如使用#pragma-type 设置)。

不过,最好不要使该文件可执行。所有这些 * 都会以一种非常令人不快的方式扩展。

相关内容