sh
Оригинал: Упражнение 28: sh
Переводчик: Феликс Ли
Лицензия: CC BY-NC-SA 4.0
Гордо использует Google Translate
Вы продолжите свой процесс в стиле TDD, но начнете с небольшой сессии хакинга. Лучший способ работать с TDD заключается не в том, чтобы сначала писать тесты, а в следующем порядке действий:
Когда энтузиасты TDD сталкиваются с новыми для них проблемами, этот процесс является тем, что я видел их использовать на практике. Быстрое создание черной магии, которое активирует ваше мышление, исследование проблемы, а затем серьезное отношение к работе делает её более реальной. Если кто-то скажет вам, что это не TDD, просто не говорите им, что вы сделали спайк. Они никогда не узнают.## Часто задаваемые вопросы
В этом упражнении вы будете реализовывать часть оболочки для Unix sh
. Вы использовали sh
, когда программируете, потому что он работает внутри терминала (PowerShell отличается) и запускает другие программы. Обычно это bash
, но также может быть fish
, csh
или zsh
.
Инструмент sh
— это огромная программа, которую требуется реализовать, так как она поддерживает полный язык программирования для автоматизации системы. Мы не будем реализовывать язык программирования, а только ту часть, которая запускает команды командной строки.
Чтобы завершить эту задачу, вам понадобятся следующие библиотеки:
subprocess
, запускающий другие программы.readline
, получение входных данных от пользователя и поддержка истории.Вы не должны делать полную версию Unix sh
со всеми трубами и прочими вещами, но должна быть реализована вся часть, кроме языка программирования. Ваша реализация должна выполнять следующее:
readline
, начиная с приглашения.subprocess
и управление всем выводом.Чтобы начать, вы можете сделать свой спайк (spike), чтобы изучить readline
или subprocess
, или оба, что бы вы ни считали необходимым или незнакомым.После завершения спайка вы можете приступить к написанию тестов и реализации системы.
Вы можете реализовать трубу? Например, когда вы вводите history | grep python
, то символ |
передаёт вывод команды history
как вход для команды grep
.
Если вы планируете углубиться в понимание Unix-процессов и управления ресурсами, вы можете исследовать мой проект python-lust. Он не слишком большой и полон множества маленьких хитростей.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )