Я никогда не сохранял ни один из моих сценариев bash с расширением, и я только недавно отправил сценарий bash в Github и понял, что он неправильно выделяет правильный синтаксис, такой как: комментарии, переменные, циклы и т. Д. Github даже пометил скрипт как файл Javascript и не читает директиву #!/bin/bash
. Как я могу решить эту проблему и убедиться, что мой сценарий правильно интерпретируется как сценарий Bash на 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
Github ищет директиву интерпретатора shebang. Это строка в верхней части файла, в которой указывается, какой интерпретатор следует использовать для запуска сценария.
Пример такой директивы:
#!/bin/bash
Github выделит сценарии, содержащие такую директиву, а также сценарии с расширением .sh (и некоторые другие).
Ваш пример сценария был идентифицированный правильно на github, но это было выделил неправильно. Это говорит о том, что вы каким-то образом вызвали ошибку в их парсере, лингвист. По этому поводу я хотел бы связаться с разработчиками-лингвистами.