1

Я использую Ubuntu 14.04. И сегодня у меня есть удивительная находка: я могу выполнить файл python без расширения файла!

например

$ echo " print 'hello' " > z
$ python z
hello

Итак, зачем нам расширение файла? Имеет ли он подлинное влияние на файл, кроме как семантически сказать людям, что это за файл?

1 ответ1

2

Если вы говорите о расширении, Linux не использует расширения так же, как Windows, фактически расширения не имеют никакого смысла в Linux и являются лишь частью имени файла. Они все еще используются, чтобы людям было легче распознавать файлы. Одним из распространенных случаев, когда расширения не используются, являются двоичные исполняемые файлы (вы можете использовать python вместо python.exe).

Есть два способа запуска скриптов:

  • Вызов из оболочки (./scriptname.py): в скрипте первая строка будет говорить что-то вроде #!/usr/bin/python . #! поручает ядру использовать последующий файл в качестве интерпретатора для скрипта.

    От http://en.wikipedia.org/wiki/Shebang_%28Unix%29

    Shebang на самом деле является читаемым человеком экземпляром магического числа в исполняемом файле, строка магического байта 0x23 0x21, двухсимвольная кодировка в ASCII # !. Это магическое число обнаруживается семейством функций "exec", которые определяют, является ли файл изображения скриптом или исполняемым двоичным файлом. Присутствие шебанга приведет к выполнению указанного исполняемого файла, обычно переводчика для языка сценария.

  • Вызов интерпретатора со сценарием в качестве аргумента (имя сценария python scriptname). Если вы сделаете это, вы запустите интерпретатор и прямо скажете ему, какой скрипт запускать. Скрипт может быть любым файлом с любым расширением.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .