2

Существует ли более высокая причина, по которой первоначальные разработчики оболочки Bourne решили назвать команду source .?

(afaik исходная команда специфична для bourne, поправьте меня, если я ошибаюсь)

обратите внимание, что bash имеет псевдоним для . называется source , который гораздо более читабелен. У sh нет этого псевдонима, это значит . это не короткая форма для source .

2 ответа2

2

Как гласит Википедия, оболочка Bourne была написана как замена первой в истории оболочки, оболочки Томпсона, и последняя была действительно глупой, поэтому маловероятно, что это проектное решение было получено от предшественника. Тем не менее, Борн использовал некоторые из правил синтаксиса ALGOL 68, и это может быть причиной ... кто-то, кто знает ALGOL, пожалуйста, поправьте меня.

Такие базовые проектные решения редко прослеживаются до их корней только потому, что они были очевидны для оригинальных программистов, или взяты из некоторого распространенного в те времена и теперь мертвого языка, или просто выбраны случайным образом из списка возможностей.

Для меня команда dot ассоциируется с «текущим чем-то», то есть как псевдоним интерпретатора в случае шеллскрипта, а краткая форма означает, что нет процесса fork'd. Ну, это не хорошее объяснение, но не хуже, чем любое другое.

upd: Вы также можете взглянуть на эту статью в ComputerWorld. Хотя он не отвечает на ваш конкретный вопрос, он может быть интересным сам по себе.

2

Они не совсем синонимы. Например, пока . распознается sh, он не встроен в csh. Аналогично, хотя source является встроенным для csh, это не встроенная команда для sh.

Я бы вообразил это . на sh делал то же самое, что и source на csh, и поэтому оба были реализованы по причинам совместимости. Я не был жив в золотые дни csh/sh хотя (если они когда-либо были золотыми), так что это больше спекуляция, чем что-либо;)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .