这可能被一些人认为是滥用,但也许我(和其他人)可以在这里学到一些东西。
我正在使用 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 设置)。
不过,最好不要使该文件可执行。所有这些 * 都会以一种非常令人不快的方式扩展。