вызывать команды оболочки из кода по замыслу? - PullRequest
2 голосов
/ 12 ноября 2011

Философия Unix учит, что мы должны разрабатывать небольшие программы, которые хорошо выполняют одну задачу.Это также учит, что мы должны отделить политику от механики.Я предполагаю, что один из способов это сделать - сначала спроектировать текстовую команду оболочки, а затем (при желании) построить графический интерфейс поверх нее.

Мне действительно нравится идея, что можно составлять небольшие программы (по каналу).вместе) в более сложные системы.Мне также нравится тот факт, что простые, сфокусированные проекты должны теоретически нуждаться в меньшем обслуживании, чем монолитная система, которая связывает все свои правила вместе.какая-то его функциональность для команд оболочки вызывается прямо из кода?Если сделать еще один шаг вперед, имеет ли смысл намеренно разрабатывать команду оболочки, которая должна вызываться непосредственно из кода (скомпилированного или написанного по сценарию)?Очевидно, что это имело бы смысл только в том случае, если у команды shell было какое-то достойное использование консоли.

По своему опыту я не могу сказать, что это практика, которую я видел много.Много раз код, специфичный для задачи, зависит от библиотек, специфичных для задачи.Конечно, возможно, что без моего ведома я использовал библиотеки, которые на самом деле являются просто оболочками для команд оболочки.(Или, скорее, команда оболочки является оболочкой какой-то библиотеки.)

1 Ответ

5 голосов
/ 12 ноября 2011

Парадигма Unix - это модульность.Вы должны написать свою программу в виде набора модулей, которые затем могут быть извлечены в несколько программ, если вы хотите.Однако выполнение новой программы всякий раз, когда вы хотите выполнить вызов функции, является медленным и непрактичным.

...