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