Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Пользователи юникс систем поясните момент с запуском скрипта?

Inco Gnito Ученик (3), на голосовании 1 месяц назад
То есть интерпритатор пропустит строчку с путем и ее получается выполнит кто? Оболочка (что то типа cmd, не силен в линуксах)?
Но зачем ее выполнять если получается интерпритатор уже читает файл скрипта.
Голосование за лучший ответ
Алекс Куха Высший разум (461676) 2 месяца назад
Возможно в этой редакции Вам будет понятен смысл
в UNIX-подобных ОС совместно с восклицательным знаком в начале файла образует Shebang — последовательность, после которой указывается интерпретатор, которому будет передан файл при запуске
Получается, что интерпретатор не пропускает 1ю строку, а использует для определения нужного обработчика данного файла

Вопросы к автору этого текста. Понять его не смог
Иван Сигаев Искусственный Интеллект (154173) 2 месяца назад
Оболочка (bash) при "запуске" файла пытается прочитать первую строку и стартует необходимый исполнитель
./test
Естественно если пытаться подать файл интерпретатору строка просто пропустится
python ./test
Екатерина Строфилова Мудрец (11250) 2 месяца назад
В системе обычно установлено несколько интерпретаторов разных языков программирования. Например, в моей системе:
По пути /usr/bin/perl установлен интерпретатор perl, по пути /usr/bin/python3 установлен интерпретатор python, а по адресу /usr/bin/bash - интерпретатор bash.
В шебанге (первой строчке, которая начинается с #!) пишешь путь до того интерпретатора, которым будешь выполнять свою программу. Система отправит содержимое файла по указанному пути. Интерпретатор, когда получит содержимое файла, первую строчку (с шебангом) проигнорирует. Она ему в этот момент будет уже не нужна.

Т.е. если в качестве примера взять исполняемые текстовый файл
 #!/usr/bin/python3 
print("Hello World!")
То система, исходя из первой строчки (шебанга), "скормит" содержимое интепретатору, который находится по адресу /usr/bit/python3, а сам интерпретатор Пайтона первую строчку уже пропустит и выдаст на выход Hello World
Похожие вопросы