Как я могу заставить режим shell-script в Emacs интерпретировать #PBS -S /bin/bash как код оболочки bash?

Я использую Emacs в системе LINUX, которая использует Portable Batch System (PBS) для управления использованием ресурсов. Сценарии PBS требуют "#PBS -S /bin/..." в качестве первой строки в сценарии, чтобы объявить оболочку сценария для PBS. Когда я загружаю скрипт в Emacs, нет #!/ Bin /... для предупреждения Emacs о том, какая оболочка программируется. Итак, как мне заставить режим shell-script в Emacs интерпретировать #PBS -S /bin/bash как код оболочки bash?

2 ответа

Добавьте это к вашему .emacs:

(setq auto-mode-interpreter-regexp 
    "#\\(?:!\\|PBS -S \\)[ \t]?\\([^ \t\n]*/bin/env[ \t]\\)?\\([^ \t\n]+\\)")

Это заставляет Emacs задуматься #PBS -S в качестве альтернативы #! префикс.

Добавьте что-то вроде следующего в конец файла:

# Local Variables:
# mode: shell-script
# End: 

Конечно, есть и другие способы, такие как отдельный шаблон именования, используемый для установки переменной auto-mode-alist.

Другие вопросы по тегам