Я никогда не сохранял ни один из моих сценариев bash с расширением, и я только недавно отправил сценарий bash в Github и понял, что он неправильно выделяет правильный синтаксис, такой как: комментарии, переменные , циклы и т. д. Github даже пометил скрипт как файл Javascript и не читает директиву #! / bin / bash
. Как я могу решить эту проблему и убедиться, что мой сценарий правильно интерпретируется как сценарий Bash на Github?
Github ищет директиву интерпретатора shebang. Это строка в верхней части файла, в которой указывается, какой интерпретатор следует использовать для запуска сценария.
Пример такой директивы:
#!/bin/bash
Github выделит сценарии, содержащие такую директиву, а также сценарии с расширение .sh (и несколько других).
Ваш пример скрипта был правильно идентифицирован github, но он был выделен неправильно. Это говорит о том, что вы каким-то образом спровоцировали ошибку в их парсере, лингвисте . По этому поводу я хотел бы связаться с разработчиками-лингвистами.
Если посмотреть на исходный код "лингвиста" GitHub [1], он должен иметь расширение .sh
[2]
Мы используем эту библиотеку на GitHub для обнаружение языков BLOB-объектов , выделить код, игнорировать двоичные файлы, подавлять сгенерированные файлы в различиях и генерировать графики разбивки по языку.
(выделено мной)
[1] https://github.com/github/linguist
[2] https://github.com/github/linguist/blob/master/lib/linguist /languages.yml#L1190