Можете ли вы иметь файл терминала в Linux, как Windows Batch? Что такое расширение?

0

Прошло много времени с тех пор, как я загрузил свой Kali Linux на виртуальную машину Windows (VirtualBox, а не VMware). На моем хосте Windows я создал множество пакетных сценариев, которые могут выполнять «код cmd» с .batрасширением файла. Мне было интересно, если вы могли бы сделать то же самое для терминалов Linux, например, с .bashрасширением файла или чем-то, или просто выполнить .txtфайл ?. Я искал по всей сети, даже по стеку сайтов обмена и квору, и ничего не нашел.

Сэм
источник
Связано: unix.stackexchange.com/questions/31760/…
Мелебиус

Ответы:

1

Эквивалент пакетных сценариев для Linux является сценариями оболочки и обычно имеет расширение .shили вообще не имеет расширения.

Linux не зависит от расширений файлов в отличие от Windows. Вместо этого он использует режимы файла , где сценарий Shell должен быть исполняемым , который делается с помощью команды: chmod +x filename.

Хотя это и не обязательно, часто встречаются сценарии оболочки, имеющие .shрасширение.

Наиболее распространенные способы запуска сценария оболочки - это ./filenameтот же каталог, что и сценарий, или /full/path/to/filenameдругой каталог.

Микаэль Кьер
источник
3
Для сценариев оболочки вполне характерно, что расширение вообще не имеет расширения: вероятно, правильнее будет сказать, что если сценарий имеет расширение, оно обычно есть .sh, но для этого нет никаких требований - все, что нужно, - это текстовый файл. является исполняемым Произвольный исполняемый текстовый файл будет обрабатываться как сценарий оболочки, если только в его первой строке не !#указан путь к программе для обработки файла, например, #!/usr/bin/pythonдля запуска сценария Python. fileУтилита показывает тип любого файла, и как Linux обрабатывает файлы не зависит от любого расширения, хотя некоторые приложения могут использовать их.
AFH
Хотя bash[сейчас] это наиболее распространенная оболочка Linux и, вероятно, значение по умолчанию, существуют и другие возможности, поэтому я бы назвал «сценарии оболочки» более правильным термином, чем «сценарии bash».
Джефф Цейтлин
Хотя я согласен с тем, что не существует расширения для сценариев, я также считаю, что это довольно плохая практика. Поскольку вопрос был о том, какое расширение файла у них есть, я все еще думаю, что мой ответ действителен.
Микаэль Кьер
2
На самом деле, иметь расширение - плохая практика. Пользователю не важно, реализована ли ваша команда в Python, или в оболочке, или в C, или в чем-то другом, и необходимость менять каждый скрипт, который вызывает этот скрипт, если вы меняете язык реализации, просто глупо.
трипл
Оглядываясь вокруг, я на самом деле не могу найти четкого определения лучших практик, но для моей повседневной работы наличие расширения для вспомогательных сценариев в моих репозиториях git определенно предпочтительнее, чем его отсутствие. Я понимаю вашу точку зрения и также вижу, что большинство (если не все) нативных сценариев не имеют расширения. Я обновлю ответ.
Микаэль Кьер