Если Python-скрипту передать `*` из Bash, что придёт ему в аргументах?

Если * не заключена в кавычки, Bash обычно раскрывает её в имена подходящих файлов до запуска Python. Скрипт получает несколько аргументов, а не сам символ звёздочки.

Короткий ответ

Что ответить на собеседовании

Если * не заключена в кавычки, Bash обычно раскрывает её в имена подходящих файлов до запуска Python. Скрипт получает несколько аргументов, а не сам символ звёздочки.

Подробный разбор

Ответ с пояснениями

Если * не заключена в кавычки, Bash обычно раскрывает её в имена подходящих файлов до запуска Python. Скрипт получает несколько аргументов, а не сам символ звёздочки.

В sys.argv будут уже готовые строки имён; Python не выполняет это раскрытие повторно. При '' или "" передаётся буквальная звёздочка. По умолчанию скрытые имена с точкой не подходят, а при отсутствии совпадений * обычно остаётся литералом. Настройки Bash nullglob, failglob, dotglob и отключение globbing меняют поведение, поэтому важны кавычки и параметры оболочки.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее