Обсуждение:Bourne shell

Ранее не имеющий названия раздел

Привет, я вижу те же ошибки на этой странице, что и на странице про «Unix shell».

Оболочка Bourne, как правило, больше не располагается как /bin/sh. Это касается только некоторых очень редких систем (например, Solaris, упомянутого выше). Во многих системах вообще больше нет оболочки Bourne, а когда она есть, она обычно находится либо в нестандартном месте, например, /usr/old/bin, либо имеет другое имя, например, bsh или sh.bourne. Код sh не был сделан свободным до недавнего времени. Вот почему ни одна свободная система Unix никогда не имела его (за исключением ранних BSD, которые были причиной судебных исков, BSD затем приняли оболочку Almquist, которая была свободной реализацией оболочки Bourne, поскольку ее можно было найти в SysV с некоторыми расширениями, и теперь она сделана соответствующей POSIX (современная sh)).

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

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

И неправильно утверждать, что это стандарт для всех коммерческих Unix-систем.

Подробности смотрите в моих комментариях на странице оболочки Unix.

Еще одна ошибка:

"циклы for, в частности использование $* для перебора аргументов". Это неверно. $* — это конкатенация позиционных параметров. Именно $@ в двойных кавычках позволяет перебирать позиционные параметры, а не $*. И "for" по умолчанию перебирает позиционные параметры, поэтому нет необходимости указывать "$@":

потому что я делаю что бы ни было "$i"сделанный

(это не для do od, а для do done в оболочке Bourne)

Я не знаю, можно ли сказать, что оболочка Korn была написана "намного позже" csh. Я думаю, что она была начата в начале восьмидесятых (где-то читал 1982), то есть всего через 3 года после csh (в этом я могу ошибаться).

re: Использование оболочки Bourne.
Даты и номера версий найти может быть сложно. Я подозреваю, что также имело место расхождение, поскольку различные поставщики быстро исправляли и улучшали исходную оболочку, не делясь этими изменениями исходного кода(?) (sh была «открытой системой», но не «с открытым исходным кодом»). Я знаю одного поставщика БД, который фактически включил свою стандартную оболочку в свой дистрибутив БД, чтобы избежать любых неожиданных улучшений от поставщиков ОС. см. Talk:Unix shell#Shells, перечисленные по совместимости . Будет ли хронология улучшений и клонов оболочки Bourne излишеством?
В ответ:while ~ do ~ od
Ваш комментарий, несомненно, верен. As /bin/odпредшествовал синтаксису оболочки Bourne, и while ~ do ~ doneявляется правильным. Я могу исправить это прямо сейчас. Есть ли какие-либо исторические ссылки на то, почему doneиспользуется as? В оригинальном файле Bourne mac.hиспользуются оба, например.
ДЛЯ ~ ДО ~ ОД # для цикла #WHILE cond DO ~ OD # цикл раннего завершения #REP ~ PER cond DONE # цикл позднего завершения #LOOP ~ POOL # бесконечный цикл #
Re: $*против"$@"
Заставляет задуматься, изначально ли Bourne был встроен $@, или его добавили как улучшение. Я даже сегодня вижу много $* в коде, где должно быть "$@". Было ли "$@" частью оригинального дизайна или улучшением? Нужно как-то проверить исходное дерево исходников... Интересно, компилируется ли оно до сих пор... :-) (Кстати, IIRC csh использовал $*:q вместо "$@") -- NevilleDNZ 12:48, 10 сентября 2006 (UTC) [ ответить ]
$@ был представлен в 1986 году с SVr3 (см. основную статью). --Schily ( обсуждение ) 10:28, 28 июня 2012 (UTC) [ ответ ]
Я бы не сказал, что это было излишеством, но, похоже, его будет трудно исследовать и цитировать, поскольку большинство этих изменений по определению закрыты и двоичны. -- Gwern (вклад) 22:47, 10 сентября 2006 (UTC) [ ответить ]
Диалект "do" "od", вероятно, пришел из Algol 68, если это имеет значение. Algol 68 также использовал while elihw, if fi и case esac. -- Тони Сидауэй 13:38, 18 января 2008 (UTC) [ ответить ]

Потомки

Я удалил абзац из раздела «Потомки» , в котором говорится об оболочке C, потому что она не является потомком оболочки Bourne (она запускала оболочку C (csh), произошедшую не от оболочки Bourne, а от оболочки Thompson,&hellip ). Я включил соответствующий (и только соответствующий) контекст в описание оболочки Korn; также немного улучшив стиль. Надеюсь, это сработает для вас. -- Rfsmit ( обсуждение ) 21:14, 21 июля 2008 (UTC) [ ответить ]

Не совсем про оболочку Борна?

Следует ли переименовать эту страницу: Оболочка Bourne; история или оболочка Bourne; предыстория? и добавить ссылку на страницу, которая на самом деле рассказывает о том, что такое/делает оболочка Bourne? DGerman ( обсуждение ) 14:29, 29 января 2009 (UTC) [ ответ ]

Что, по-вашему, должно быть в этой статье, чего там нет? Помните, что это энциклопедическая статья о оболочке Bourne, а не учебник или технический справочник по оболочке Bourne, как в WP:NOTHOWTO . Эта статья, конечно, не идеальна, но она помещает оболочку в исторический контекст и описывает новые возможности и языковые конструкции этой оболочки. Я не думаю, что здесь особенно нужен полный список всех языковых конструкций: это лучше сделать в справочном руководстве или учебнике по оболочке Bourne. CrispMuncher ( talk ) 19:41, 29 января 2009 (UTC) [ reply ]

вопрос...

Борн назвал их "процедурами оболочки", а не "скриптами оболочки" . Должна ли эта статья следовать его терминологии? Geo Swan ( обсуждение ) 04:29, 1 февраля 2009 (UTC) [ ответить ]

Скриншот другой оболочки?

Эта статья о sh начинается со скриншота другой оболочки, bash. Хотя в статье утверждается, что bash — это клон sh (я не согласен), не было бы более познавательно вместо этого иметь скриншот той же программы , которая обсуждается в статье? Например, стандартное приглашение в sh — «$», тогда как в bash — «user-name@host-name:/the/current/dir$». Кроме того, по моему опыту, раскрашивание по умолчанию очень нетипично для sh. Для меня это все равно, что иметь изображение автомобиля SAAB в статье об Opel, хотя можно утверждать, что современные SAAB — это просто клоны Opel (поскольку многие детали совместимы). 83.209.89.69 (обсуждение) 20:08, 27 июня 2010 (UTC) [ ответить ]

согласен - пример не по теме. Не всему нужна картинка, в любом случае. Tedickey ( talk ) 20:19, 27 июня 2010 (UTC) [ ответить ]
Ладно, я виновник, который это сделал, так что, возможно, мне следует объяснить и то, почему я это сделал, и то, почему я это отменил. Этот скриншот появился на странице оболочек Unix . Я подумал, что он довольно непривлекателен и не очень полезен, потому что не показывает, как окна оболочки выглядят на типичном рабочем столе. Я заменил его там скриншотом окон sh и tcsh, работающих под Mac OS X. Так что же делать с этим уродливым скриншотом? Сначала я думал о том, чтобы переместить его ниже на той странице, но потом подумал, что еще лучше, почему бы просто не переместить его на страницу sh. Ладно, я вас понял. Плохая идея. Мои извинения. Тем не менее, я действительно думаю, что хороший скриншот был бы полезен, и если у кого-то есть что-то получше, я надеюсь, что они это опубликуют. Msnicki ( talk ) 20:41, 27 июня 2010 (UTC) [ ответить ]
Я согласен с tedickey - я не думаю, что картинка нужна. Оболочки в основе своей текстовые, а не графические, и любой снимок экрана будет эмулятором termianl, а не самой оболочкой. Crispmuncher ( обсуждение ) 14:29, 28 июня 2010 (UTC) [ ответить ]
Хорошо, но представьте, что кто-то спрашивает, что такое sh или что он делает, если у вас есть машина под рукой, на которой работает sh. Разве вы не сделаете что-нибудь, чтобы продемонстрировать это? Может быть, вы бы ls каталог рабочего стола, чтобы показать, что вы получаете то же самое через оболочку. Может быть, вы бы продемонстрировали что-то, итеративно перебирая набор подстановочных знаков. Вы бы сделали что-то очень простое, очень понятное, чтобы показать, как это выглядит и что делает. Можно нам взять это изображение? Что мне никогда не нравилось в скриншоте bash, так это то, что он был просто таким случайным! Это был случайный снимок случайного сеанса bash, заглядывающий через плечо того, кто любит действительно уродливые цвета, делающий неизвестно что. Хорошая картинка может чему-то научить, она может сделать вещи осязаемыми. Я думаю, если у вас есть хорошо продуманная картинка, это помогает. Но я гораздо больше человек csh, чем человек sh (отчасти поэтому я так быстро отступил), так что еще раз извиняюсь за оплошность. Делайте то, что считаете правильным. С уважением. Msnicki ( обсуждение ) 16:40, 28 июня 2010 (UTC) [ ответ ]

Скрипты, вызываемые по именам файлов

Список функций в настоящее время включает "Скрипты могут быть вызваны как команды, используя их имя файла". Была ли это функция оболочки Bourne или ядра Unix? В современных Unix это, безусловно, функция ядра. Qwertyus ( обсуждение ) 22:04, 2 февраля 2011 (UTC) [ ответ ]

Оба варианта неверны... Скрипты, начинающиеся с #!/path/to/interpreter, обрабатываются большинством ядер, остальные скрипты обрабатываются оболочкой. --Schily ( обсуждение ) 23:35, 2 февраля 2011 (UTC) [ ответ ]

Лицензия

Solaris распространяет версию оболочки Bourne с использованием CDDL . Однако, лицензия, указанная в этой теме, вероятно, должна отражать лицензию владельца устаревшего кода AT&T. Это, вероятно, не Oracle/Sun. TEDickey ( обсуждение ) 10:49, 28 марта 2011 (UTC) [ ответить ]

Я считаю, что здесь следует объяснить оболочку AT&T Bourne. Все остальное — либо форк, либо обратная разработка. Zsh — это не версия bash. ReactOS — это не версия Windows. Конечно, мы могли бы добавить раздел о форках. Luhanopi ( обсуждение ) 16:53, 18 августа 2024 (UTC) [ ответить ]

ну, у freeBsd есть версия оболочки Bourne под лицензией BSD -- 82.44.40.210 (обсуждение) 14:37, 28 мая 2011 (UTC) [ ответить ]

Существует несколько (повторных) реализаций с отличиями... TEDickey ( обсуждение ) 14:41, 28 мая 2011 (UTC) [ ответить ]
Я сомневаюсь, что Solaris распространяет версию оболочки Bourne. Я удалил лицензию, пока не будет предоставлена ​​ссылка. -- Chealer ( обсуждение ) 05:59, 21 марта 2012 (UTC) [ ответить ]
Сомнение — бесполезный метод для энциклопедии. Правильный метод — писать доказуемые факты. Единственный способ доказать в случае sh — заглянуть в исходный код. SunOS-2.0 поставлялась с Bourne Shell, которая еще не поддерживала функции. SunOS-3.0 поставлялась с обновленной Bourne Shell с поддержкой функций и без кода в стиле Pascal. SunOS-5.x поставляет обновленную версию, которая включает поддержку NLS / i18n. Учитывая тот факт, что историческая лицензия UNIX Caldera не распространяется на Bourne Shell с поддержкой функций, единственной общедоступной и легальной версией является версия, опубликованная Sun под лицензией CDDL. Я настоятельно рекомендую вам исправить вашу неправильную правку. --Schily ( talk ) 11:23, 21 марта 2012 (UTC) [ reply ]
Привет, Шили, я ничего не писал в статье, я только удалил неисходную часть, в которой утверждается, что оболочка Bourne лицензирована по CDDL. "Изучение исходного кода" — это не то, как работает Википедия, см. Wikipedia:No original research . -- Chealer ( обсуждение ) 19:27, 21 марта 2012 (UTC)
Нет, вы удалили доказанное утверждение. Кажется, вы неправильно истолковываете, как работает WP. WP, конечно, не требует предоставления онлайн-доказуемых фактов, достаточно названной книги или названного закрытого источника. В случае Bourne Shell, к счастью, у нас есть что доказать онлайн: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh/stak.c подтверждает, что CDDL применяется, и если вы не можете распознать, что это Bourne Shell, вы просто не тот человек, чтобы судить. Вы утверждали, что Bourne Shell недоступен под CDDL, и это было опровергнуто. Я настоятельно рекомендую вам исправить вашу ошибку редактирования. --Schily ( talk ) 22:01, 21 марта 2012 (UTC) [ reply ]
Нет - вы утверждаете, что что-то не поддерживается WP:RS . Единственный вероятный источник в OpenSolaris для "Bourne Shell" - это код с лицензией CPL. Вы должны быть более знакомы с базой кода, чем это. Кстати, нападать на других редакторов невежливо. TEDickey ( talk ) 22:56, 21 марта 2012 (UTC) [ ответить ]
Так что вам явно не хватает необходимых навыков для обсуждения этой темы. Хорошего дня. --Schily ( talk ) 23:13, 21 марта 2012 (UTC) [ ответить ]
"Изучение исходного кода" здесь не поможет, поскольку никакая часть комментариев Шили не может быть подкреплена просмотром там. Возможно, есть WP:RS, относящийся к этой проблеме, но ни один не был предложен для рассмотрения более года. TEDickey ( talk ) 20:32, 21 марта 2012 (UTC) [ ответить ]
В Solaris есть более одной оболочки. Быстрая проверка (на opensolaris.org) показывает "sh" с пометкой CDDL. Однако ее связь с Bourne Shell неясна (сомнительна). В заголовках комментариев есть другая "sh" с именем Bourne, которая помечена как CPL . В любом случае, история исходного кода OpenSolaris не восходит достаточно далеко, чтобы делать подобные заявления, а только гадать TEDickey ( talk ) 08:59, 21 марта 2012 (UTC) [ ответить ]
Как уже отмечалось, существует несколько реализаций. Версия OpenSolaris, полученная из исходного кода Bourne (см. выше), от AT&T, с использованием CPL. Лицензирование реализаций других поставщиков (производных или нет) различается. WP:RS — это то место, с которого следует начать, а не случайные неподтвержденные личные мнения TEDickey ( talk ) 10:47, 22 марта 2012 (UTC) [ reply ]
Как уже отмечалось, ваши последние заявления подтверждают, что вы либо пишете намеренную чушь, либо у вас очень низкий уровень знаний в программировании. Тот факт, что вы утверждаете, что видите "Bourne Shell" в источниках, которые имеют "ksh" в именах путей файлов и которые содержат теги "Korn Shell" и "David Korn", дисквалифицирует вас как заслуживающего доверия партнера по обсуждению. И кстати: мне не нравится ваш недружелюбный тон. --Schily ( talk ) 12:31, 22 марта 2012 (UTC) [ ответить ]
В "http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/lib/libshell/common/sh/main.c" нет "ksh", а в заголовке комментария ясно указано

/*

 22 * Оболочка UNIX 23 * 24 * SR Борн 25 * Переписано Дэвидом Корном 26 * Лаборатории AT&T 27 * 28 */
Аналогично, ссылка, которую вы добавили, не предоставляет подобной информации, и, как заметят другие, я указал, что существуют различные реализации, ни одна из которых не была процитирована с использованием надежного источника , чтобы быть оболочкой Bourne, обсуждаемой в этой теме. Ваши повторяющиеся личные нападки — единственное, что примечательно в ваших комментариях TEDickey ( talk ) 22:37, 22 марта 2012 (UTC) [ ответить ]

Я указал надежный источник. Любой человек с минимальными базовыми знаниями истории UNIX или минимальными навыками программирования сможет понять, что в отличие от вас я указал на исходный код Bourne Shell. Но даже если оба навыка отсутствуют, люди, которые используют ОС, совместимую с POSIX, могут скомпилировать исходный код и проверить поведение. И каждый, кто может скомпилировать, может запустить Bourne Shell и совместимый тестовый скрипт с http://www.in-ulm.de/~mascheck/various/whatshell/whatshell.sh, чтобы узнать, какую оболочку он использует.

Korn Shell — это наполовину несовместимая ветка на исходном коде Bourne Shell, которая появилась в 1982 году. Я не знаю ни одного серьезного человека, который назвал бы Korn Shell «незначительным вариантом» Bourne Shell. Помимо редактора истории Korn, основное различие между Bourne Shell и Korn Shell заключается в порядке выполнения конвейера. Korn Shell выводит «test» с помощью:

эхо-тест | чтение varэхо $var

в то время как Bourne Shell печатает пустую строку. Источники, опубликованные AT&T после примерно 1984 года, не включают тег "SR Bourne" ни в Bourne, ни в Korn Shell. Источники Korn Shell, которые напрямую исходят от Дэвида Корна, все еще имеют этот тег, но никто не будет рассматривать это как указание на то, что вы видите сам Bourne Shell.

Относительно лицензирования: Современные (поддерживающие функции) версии Bourne Shell имели закрытый исходный код, пока Sun не опубликовала недавнюю версию Bourne Shell под лицензией CDDL в июне 2005 года. Никакая другая лицензия OSS не применяется к такому варианту Burne Shell. AT&T дала добро на размещение ksh93 под лицензией CPL в 2001 году. До этого Korn Shell (но не Bourne Shell) была доступна под несовместимой с OSI лицензией в течение нескольких лет (IIRC с 1997 года).

Расширенная и переносимая версия Bourne Shell, которую я публикую с 2006 года, была получена из единственного легального источника OSS по адресу: http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sh. Она добавляет интерактивный редактор истории оболочки, написанный мной в 1982-1984 годах для моей личной оболочки независимо от Дэвида Корна.

Проблема, которую я часто вижу у вас, заключается в том, что вам не хватает необходимых навыков для обсуждения темы, но вы все равно ведете себя так, будто вы единственный человек на планете, который знает все правильно. Вместе с вашим агрессивным стилем обсуждения это создает дурной вкус. Я призываю вас вести себя более сговорчиво, чтобы избежать ненужных споров. --Schily ( talk ) 15:06, 23 марта 2012 (UTC) [ ответить ]

Как обычно, вы делаете несколько заявлений, не предоставляя никаких источников, кроме ваших утверждений (ссылка не имеет значения, поскольку то, что вы говорите об этом, требует некоторого WP:RS , который пока отсутствует в обсуждении). TEDickey ( обсуждение ) 00:36, 24 марта 2012 (UTC) [ ответ ]
К сожалению, вы по-прежнему игнорируете доказанные факты и продолжаете лично нападать на людей. Доказанным фактом является то, что последняя версия исходного кода Bourne Shell (с функциями (представленными в SVr2), управлением заданиями (представленными в SVr4) и интернационализацией+широкой поддержкой символов (представленной в Svr4)) доступна по лицензии CDDL. Если вы считаете, что существуют другие законные способы получить последний исходный код Bourne Shell, вы можете предоставить нам свою информацию для проверки. --Schily ( обсуждение ) 14:13, 3 апреля 2012 (UTC) [ ответ ]
Очевидной мотивацией для правок Шили является эта деятельность TEDickey ( обсуждение ) 20:34, 20 апреля 2012 (UTC) [ ответить ]

Не желая обидеть Шили, я хочу отметить, что его исторический отчет ошибочен, утверждая, что выпуск Caldera International 2002 года многих релизов исторического Unix вплоть до v7 и 32V 1979 года не включал оболочку Bourne. Она, несомненно, была смехотворно древна, плохо переносима и написана на K&R, а не на ANSI C, но я был бы крайне удивлен, если бы это не была настоящая кодовая база Стивена Борна во всей ее (устаревшей) славе 1970-х годов — и на условиях лицензирования BSD-ish от Caldera. Эту историю можно проследить через репозиторий Heirloom Bourne Shell. ~~ unixguy — Предшествующий неподписанный комментарий, добавленный 198.144.195.190 ( обсуждение ) 08:48, 9 августа 2016 (UTC) [ ответить ]

Кто утверждал, что исходники Bourne Shell отсутствуют в v7?
Разработка Bourne Shell началась в 1976 году, но не закончилась. Было много улучшений, которых пока нет в коде, доступном по лицензии caldera:
  • Встроенная тестовая команда – оболочка System III (1981)
  • # как символ комментария – оболочка System III (1981)
  • Двоеточие в подстановках параметров "${parameter:=word}" – оболочка System III (1981)
  • продолжить с аргументом – System III shell (1981)
  • cat <<-EOF для отступов в документах – оболочка System III (1981)
  • Функции и встроенный return – оболочка SVR2 (1984)
  • Встроенные функции unset , echo , type – оболочка SVR2 (1984)
  • Исходный код де-ALGOL68-ized – оболочка SVR2 (1984)
  • Современный "$@" – оболочка SVR3 (1986)
  • Встроенные getopts – оболочка SVR3 (1986)
  • Усовершенствованная обработка параметров позволяет рекурсивно вызывать функции – оболочка SVR3 (1986)
  • 8-битный чистый – оболочка SVR3 (1986)
  • Управление заданиями – оболочка SVR4 (1989)
  • Поддержка многобайтовых кодов – оболочка SVR4 (1989)
  • Добавлена ​​поддержка UTF-8 — оболочка Solaris (1993)
  • Добавлена ​​поддержка параметров --long с getopts — оболочка Solaris (1999)
  • Добавлен редактор истории - Schily Bourne Shell (2006)
  • Сделано полностью переносимым с использованием malloc() вместо sbrk() - Schily Bourne Shell (2012)
  • Добавлена ​​поддержка псевдонимов, постоянных псевдонимов и параметризуемых псевдонимов — Schily Bourne Shell (2012)
  • Добавлены pushd/popd/dirs - Schily Bourne Shell (2012)
  • Поддержка set -o longopt - Schily Bourne Shell (2012)
  • Добавлена ​​поддержка read -r - Schily Bourne Shell (2012)
  • Новые встроенные функции find, pgrp , killpg , repeat , errstr - Schily Bourne Shell (2015)
  • Новый парсер для оптимизированных каналов и поддержки vfork() - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка каналов для альтернативных файловых дескрипторов - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка set -o noclobber и set -o bgnice - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка зарезервированных слов ! и time - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка всех 32 бит из кода выхода на платформах, совместимых с POSIX - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка упрощенного редактирования псевдонимов, которые необходимо заключить в кавычки, с помощью хэш-команд - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка длинных опций, которые не являются псевдонимами коротких опций, а также длинных опций для getopts - Schily Bourne Shell (2015)
  • Добавлена ​​поддержка ключевого слова select - Schily Bourne Shell (2016)
  • Добавлена ​​поддержка локальных переменных функций — Schily Bourne Shell (2016)
  • Добавлена ​​встроенная функция printf , совместимая с POSIX — Schily Bourne Shell (2016)
  • Добавлена ​​поддержка $(cmd) и $((arith)) - Schily Bourne Shell (2016)
  • Полностью соответствует POSIX - Schily Bourne Shell (2016)
  • Работает как системная оболочка Gentoo (/bin/sh) - Schily Bourne Shell (2016)

Если вам нравятся перечисленные выше функции, то доступ к ним вам предоставляет только одна лицензия — CDDL .

BTW: Историю невозможно отследить в так называемой оболочке heirloom, поскольку эта оболочка только что запустилась с исходниками OpenSolaris без истории внутри и прекратила все действия примерно через 6 месяцев, прежде чем стать полностью переносимой. Поскольку она полна ошибок, вам не очень нравится использовать оболочку heirloom. Schily ( talk ) 11:50, 9 августа 2016 (UTC) [ ответить ]

Я полагаю, что обсуждаемый вопрос заключается в том, какова лицензия устаревшего кода оболочки AT&T Bourne. Эта статья Википедии в подавляющем большинстве касается исторической оболочки, существовавшей в изначальные времена Unix вплоть до, скажем, выпуска SysV 4.x, который, при всем уважении к благородным попыткам обновить код, таким как Schily и его отряд CDDL, является, по моему мнению, последним разом (почти), когда кто-то действительно заботился об оболочке Bourne, за исключением вдохновения для ksh, bash, ash/dash и спецификации оболочки POSIX. Отсюда использование в статье прошедшего времени по существу во всем основном тексте статьи. Таким образом, я утверждаю, что правильная лицензия для цитирования этой статьи — то, что Schily называет «лицензией Caldera», которая при ближайшем рассмотрении оказывается дословным применением лицензии BSD из 4 пунктов. ~~unixguy — Предыдущий неподписанный комментарий добавлен 198.144.195.190 ( обсуждение ) 09:05, 12 августа 2016 (UTC) [ ответить ]

Итак, вы хотите сократить статью bash (Unix shell) , чтобы упомянуть только то, что было доступно в 1989 году? Это чушь, и похоже, что вы намереваетесь создать фарс. Статья Bourne Shell описывает Bourne Shell во всем его жизненном цикле, и никого не интересует, можно ли получить исходные коды по лицензии OSS, поскольку исходные коды не будут компилироваться ни в одной из последних ОС. Людям, интересующимся исходным кодом, конечно же, интересен код, который компилируется в последних версиях UNIX, а для этого требуется CDDL. Это, конечно, представляет особый интерес, поскольку, например, ash и dash менее близки к POSIX, чем недавняя Bourne Shell. Также обратите внимание, что, хотя dash и заявлен как быстрый, он медленнее, чем недавняя Bourne Shell в Solaris. И, как вы, похоже, не знаете, ksh основан на исходных кодах Bourne Shell. Schily ( talk ) 14:42, 12 августа 2016 (UTC) [ ответить ]

Утверждать, что моя логика означает, что статья bash должна «упоминать только то, что было доступно в 1989 году», — это явно нелогичное обращение, поскольку (очевидно) указанная статья не касается исторического начального состояния вклада г-на Брайана Фокса в проект GNU — как свидетельствует тот факт, что ее страница в Википедии, напротив, сформулирована в настоящем времени. По сути, игнорируя суть того, что я сказал, и поднимая нерелевантные вопросы, такие как необоснованное утверждение о ksh, вы признаете точку зрения (но все равно продолжаете спорить). Ну что ж. Итак, волонтеры проекта Wikipedia: вот ваш ответ, и я бы рекомендовал вам прекратить тратить время на споры с Шили и (в конце концов) изменить текст статьи с «Обсуждается» на «4-пунктовая BSD». Это должно освободить энергию для более плодотворных дел. ~~unixguy — Предыдущий неподписанный комментарий добавлен 198.144.195.190 ( обсуждение ) 17:21, 13 августа 2016 (UTC) [ ответить ]

Дата

В статье упоминается, что «Она была выпущена в 1977 году в выпуске Version 7 Unix», однако в статье Version_7_Unix говорится, что Version 7 Unix была выпущена в 1979 году. Не оба утверждения верны, или здесь есть подвох. DelTree (обсуждение) 12:50, 30 января 2012 (UTC) [ ответить ]

1977 год может быть неверным, самая старая дата, которую можно найти в sh-источнике, — 1978 год. --Schily ( обсуждение ) 10:22, 7 мая 2012 (UTC) [ ответить ]
Стивен Борн утверждает, что разработка Bourne Shell началась в 1976 году и привела к появлению первой пригодной к использованию версии на тот момент Schily ( обсуждение ) 14:42, 7 июня 2016 (UTC) [ ответ ]
Schily, полезная версия ничего не значит, когда дело доходит до времени выпуска. Uziel302 ( обсуждение ) 11:00, 4 декабря 2019 (UTC) [ ответить ]

Раздел критики

Не кажется серьезным наличие раздела «Критика», который выглядит так, будто он был написан в начале 1981 года, и для верности предполагает, что на дворе все еще 1981 год.

Сегодня, в 2012 году, тестовая утилита является встроенной командой уже 31 год.

Функции (которые могут действовать как псевдонимы) существуют в оболочке Bourhe уже 28 лет.

Job Control работает в Bourne Shell уже 23 года.

История и редактор истории командной строки (которого было больше, чем было в csh в 1981 году) существуют уже 5,5 лет.

Другими словами, большинство функций были в Bourne Shell до того, как появился bash. Также синтаксис csh на самом деле не является производным от C. Csh действительно предлагал несколько функций, которые помогают в интерактивном использовании, в то время как Bourne Shell был написан для использования в интерактивном использовании и для скриптов. --Schily ( talk ) 13:02, 12 мая 2012 (UTC) [ reply ]

У меня были некоторые опасения по поводу раздела критики, поэтому я добавил к нему тег POV-section. Конкретные проблемы включают фразу " Даже простая арифметика" [выделено мной], которая предполагает суждение. Кроме того, я считаю, что критика структуры, подобной ALGOL, относится к исходному коду, в котором г-н Борн написал программу оболочки, а не к чему-либо, что мог бы увидеть пользователь оболочки.
Чтобы сформировать разговор позитивно, а не фокусироваться на проблемах, я бы сказал, что у меня есть сомнения относительно энциклопедической ценности этого раздела. Мне кажется, что некоторое редактирование, чтобы сделать его более сосредоточенным на фактах, также устранило бы проблемы POV. Определенно, часть этой информации ценна с точки зрения сравнения оболочки Bourne с более современными оболочками. Leoger ( talk ) 04:57, 17 февраля 2014 (UTC) [ ответить ]

Преемник какой оболочки?

Введение говорит, что оболочка Bourne "была заменой оболочки Thompson", а раздел Origins говорит, что "Оболочка была разработана как замена оболочки Mashey". Так что же это? Teemu Leisti ( talk ) 08:18, 4 января 2013 (UTC) [ ответить ]

Я пришел сюда, чтобы сказать то же самое, 8 лет спустя -- andrewh — Предыдущий неподписанный комментарий добавлен 167.179.152.63 (обсуждение) 05:06, 14 декабря 2020 (UTC) [ ответить ]

Изучение оболочки Bourne

Стоит ли посвятить отдельную статью хорошим местам для изучения оболочки Bourne?

В курсе, который Майкл Паоли читает в Калифорнийском университете в Беркли, есть краткая ссылка на изучение оболочки. http://www.rawbw.com/~mp/unix/sh/ Исходя из опыта преподавания написания скриптов, он рекомендует начать с шестистраничной страницы руководства sh 1979 года! http://plan9.bell-labs.com/7thEdMan/v7vol1.pdf

Другим хорошим ответом на вопрос, где новички могли бы продуктивно начать, кажется, является "Advanced Bash-Scripting Guide" http://tldp.org/LDP/abs/html/, который, несмотря на название, не начинается с уровня Advanced. Advanced — это то, на чем вы окажетесь после прочтения. — Предыдущий неподписанный комментарий, добавленный Grantbow ( talkcontribs ) 09:45, 31 марта 2013 (UTC) [ ответить ]

Совместимость с оболочкой и совместимость с Unix в целом

Во-первых, у меня было ошибочное (понятное?) впечатление, что оболочка Bourne была оригинальной. Однако я знал, что некоторые системы заменяют dash на sh (совместимый), я думаю, для программ. И я знал, что пользовательские оболочки можно выбирать. Теперь мой вопрос: есть ли минимальный объем функциональности оболочки, который поддерживался (и все еще поддерживается) в "первой рассматриваемой" оболочке Unix? Я знаю о предыдущих оболочках Thompson и PWB (они единственные предыдущие оболочки?). Они не считаются Unix (больше)? lintsh (должен ли он быть упомянут на странице?) указывает, что они не важны (или оболочка Android?).

Моя (оспариваемая) точка зрения заключается в том, что "оболочка" не является частью "Unix" для взаимодействия с пользователем. Это первый компонент совместимости, затем есть также "поведение программы" совместимости, которое, как я также считаю, является существенным для совместимости с Unix. comp.arch ( talk ) 16:04, 22 июля 2014 (UTC) [ ответить ]

lintsh не существует. Единственный подход, который вы можете сделать, — это найти портативную версию самой старой оболочки, которую вы хотели бы поддерживать, а затем протестировать свой скрипт, используя этот вариант оболочки.
Самая старая оболочка, поддерживаемая через autoconf-2.13, — это оболочка Bourne от 1982 года, которая пока не включает функции. Но это было более 30 лет назад. Какую самую старую систему вы ожидаете поддерживать?
Если вас устраивает Bourne Shell из SVr4 (OpenSolaris), представляющая собой состояние разработки функций примерно с 1990 года + некоторые исправления ошибок, вы можете проверить http://sourceforge.net/projects/schilytools/files/ и использовать двоичный файл "osh", который является неулучшенной портированной версией SVr4 Bourne Shell. Schily ( обсуждение ) 16:34, 22 июля 2014 (UTC) [ ответ ]
@Schily: , спасибо за ответ, но "lintsh не существует" - недоразумение? Обратите внимание, что это не оболочка, см. ссылку. Считается ли оболочка bourne "старейшей оболочкой Unix"? Не просто поддерживаемой в настоящее время. Я имею в виду, что две более старые (еще?) считаются ли они исторической диковинкой из Древнего Unix ? comp.arch ( обсуждение ) 11:49, 23 июля 2014 (UTC) [ ответ ]
«Unix изначально был написан на языке ассемблера.[6] Кен Томпсон написал B, в основном на основе BCPL, основываясь на своем опыте в проекте MULTICS. B был заменен на C, а Unix переписан на C» — переносимость была одним из основных моментов Unix (самой ОС и, по крайней мере, некоторого подмножества (соответствующих) программ). Очевидно, что это не относится к версии на ассемблере (для 18-битной PDP-7 !). Можно ли написать переносимый скрипт вплоть до самого первого Unix (или даже Multics ?)? [Самые программы на C не будут работать (так как Unix старше C)?!] Каким будет это подмножество оболочки функционально ( полным по Тьюрингу ?)? Я также рассматриваю фактическое взаимодействие оболочки. Если то, что переносимо только в incoking программе, не имеет существенного отличия от, скажем, DOS . Каналы так же стары, как Unix (не в Томпсоне, не в скриптинге — эта версия не считается первой оболочкой/Unix?), по крайней мере, shell (и более мощная, чем в DOS, тогда?)? comp.arch ( обсуждение ) 12:15, 23 июля 2014 (UTC) [ ответ ]
Я не ожидаю поддержки чего-либо, просто рассматриваю переносимость, скажем, сейчас мы принимаем UTF-8 как должное, который, однако, не входит в минимальное подмножество Unix, но 7-битный ASCII является его частью. Я даже не уверен, что вы бы использовали это в переносимом Unix? Для меня одним из основных принципов Unix являются строки байтов (файлы). Поскольку первое использование было 18-битным, был ли байт 18/3=6 бит тогда? C(?)/POSIX теперь требует, чтобы байт был как минимум 8-битным, но C в то время этого не требовал. comp.arch ( talk ) 12:34, 23 июля 2014 (UTC) [ ответить ]
Каналы не существуют в UNIX с тех пор, как были изобретены в 1974 году. Я был на лекции Стива Борна, где он объяснял, что произошло, когда были изобретены каналы...
Обратите внимание, что UTF-8 определенно не может быть принята во внимание, наиболее часто встречающаяся кодировка в UNIX по-прежнему ISO-8859-1. UTF-8 — это что-то «совсем новое» (введено после 1995 года).
Сегодня никому не нужна совместимость с оболочками Tompson или Mashey.
Кажется, что портативная оболочка Bourne Shell — хороший кандидат для тестирования. Обратите внимание, что "lintsh" планируется, но не существует, поэтому единственным вариантом для вас может быть тестирование с портативной оболочкой Bourne Schily ( talk ) 14:32, 23 июля 2014 (UTC) [ ответить ]
Хорошо, спасибо. Были ли эти оболочки Thompson и Mashey единственными оболочками до Bourne? И не считались частью Unix(-like) согласно философии Unix ? Считаете ли вы, что совместимость с Unix отличается от совместимости с оболочкой. Я не уверен, но совместимость с оболочкой может быть более старой, то есть данная программа на C может быть сделана довольно переносимой для запуска на довольно старой Unix (вплоть до почти самой новой? - те, у кого есть компилятор C, первый Unix старше C, но был ли компилятор C сделал это старое оборудование, на котором он работал?). Если есть совместимый с Turing подмножество функций оболочки в Bash (или более старой), которое работает на предыдущих оболочках, программы оболочки могли бы работать на Unix вплоть до Mashey-shell?
Или Unix в некотором роде "начался" с Bourne? Около V7? Все остальное считается древним и не рассматривается по соображениям совместимости? Являются ли программы на C для Unix API старейшими совместимыми версиями программ Unix? Могут запускаться по отдельности, но не из оболочки. Может быть..
Я предполагал, что разделение времени всегда было в Unix, но это не так. Полагаю, что каналы в Unix (не DOS) зависят от многозадачности, которая, по сути, подразумевается разделением времени.
В тривиальном смысле я предполагаю, что запуск одной (или серии) программы был доступен в ранних оболочках с клавиатуры. По крайней мере, у Томпсона не было скриптов. Что они имеют в виду под отсутствием скриптов, может быть не из файла или вообще? (и соглашение #/bin/sh началось с - полагаю, с Bourne, и ни в одной из предыдущих оболочек не было подобного?). PWB/Mashey: "Команды if и goto были сделаны внутренними для оболочки" (то есть с клавиатуры, но не в файлах?). Кажется, этого достаточно для завершения Тьюринга... и тогда вы могли бы делать скрипты в этой оболочке, которые совместимы с Bourne? Или это был другой синтаксис? И запутался в "сделанном внутренним" - для скриптов? Я запутался, как это будет работать... (однако знаю о /bin/true и /bin/false). comp.arch ( обсуждение ) 17:55, 23 июля 2014 (UTC) [ ответить ]
Я знаю, что с UTF-8 (на него можно положиться сейчас, если только не использовать очень старое ПО), но ISO-8859-1 тоже "новый". Это новее, чем 7-битный ASCII. Unix не слишком заботится о 8-битной кодовой странице (я полагаю, многобайтовой позже, а затем UTF-8). Но байт не всегда был 8-битным, поэтому ISO-8859-x не работал бы.. Но, может быть, я имел в виду даже не 7-битный ASCII? Может быть, полагались только на шестибитный код символа ? Не то чтобы я мог найти, C является/был переносимым на 6-бит, и ОС, которые используют, я полагаю, Unix, возможно, начинали с 7-битного ASCII.. 18-битное слово PDP-7 можно погрузить в 9-бит, может быть, это было все для байта C там.. В любом случае, это не так уж важно.. comp.arch ( talk )
"8-битная чистая – оболочка SVR3 (1986)" означает? Для меня это подразумевает, что использовалась 7-битная ASCII (если это вообще было так). Теперь я вижу, многое из того, что вы принимаете как должное (потому что другие оболочки умерли..) в оболочках/Unix (переменные окружения, комментарии). Хотя оболочка 8-битная чистая, поддерживает ли она только 8-битные кодировки, но также и 7-битные системы /кодировки? Или не-8-битные байтовые системы теперь исключены? comp.arch ( обсуждение ) 10:23, 25 июля 2014 (UTC) [ ответ ]
8-битный чистый означает, что оболочка больше не использует верхний бит 8-битного символа для кодирования этого символа как цитируемого символа. В 1986 году ISO-8859-1 стал популярным и был востребован людьми за пределами США. Поддержка многобайтовых символов была добавлена ​​в 1990 году с изменениями SVr4. В то время еще не было UTF-8, но был EUC от AT&T. Schily ( обсуждение ) 10:45, 25 июля 2014 (UTC) [ ответить ]
Спасибо, знал это, перенаправляю этот конкретный вопрос (не совместимость оболочек в целом) в Обсуждение:18-бит . Старожилы могут знать там. comp.arch ( обсуждение ) 12:03, 25 июля 2014 (UTC) [ ответить ]

Противоречивая информация?

Быстро прочитав страницу, я, кажется, обнаружил небольшое несоответствие, показанное ниже:

Разработанный Стивеном Борном в Bell Labs, он пришел на смену оболочке Томпсона...

Оболочка была разработана в качестве замены оболочки Mashey.

Вероятно, нам следует изучить это и посмотреть, какой из вариантов на самом деле правильный. В противном случае, если он был создан для замены оболочки Thompson и Mashey, это должно быть указано более четко. В противном случае, если он был разработан для замены оболочки Mashey, но на самом деле он заменил оболочку Thompson, то это также должно быть указано более четко. -bsimmons 216.249.42.52 (обсуждение) 13:33, 29 сентября 2014 (UTC) [ ответить ]

расширение файла .sh

В статье Википедии « .sh » говорится:

Для типа расширения файла .sh см. Bourne shell .

Я не вижу ".sh" нигде в этой статье Bourne shell. Есть ли пробел в освещении этой статьи — должно ли быть что-то сказано о ".sh"? Или статья ".sh" должна указывать на какую-то другую статью, в которой упоминается ".sh", возможно, shell script ? -- DavidCary ( talk ) 12:38, 19 июня 2015 (UTC) [ ответить ]

Расширение .sh обычно используется в исходных деревьях, а makefile копирует file.sh в файл в ходе процесса сборки. Schily ( talk ) 12:01, 22 июня 2015 (UTC) [ ответить ]
Дорогие Шили и другие читатели,
Знаете ли вы какой-либо WP:SOURCE или хотя бы веб-ссылку на конкретное исходное дерево или Makefile, который работает таким образом?
Ни один из последних 5 Makefile или исходных деревьев, которые я просматривал, не имел ни одного файла с расширением ".sh". Но я понимаю, что обычаи моего племени и острова не являются законами природы, и поэтому я с нетерпением жду возможности узнать больше о других способах настройки процессов сборки. -- DavidCary ( talk ) 03:08, 24 июня 2015 (UTC) [ ответить ]
Связанное правило по умолчанию есть в UNIX make(1) с давних времен. См., например, исходники SunPro make: [1] в файлах Make/bin/make/common/default.mk.file, Make/bin/make/common/make.rules.file и Make/bin/make/common/svr4.make.rules.file. Schily ( talk ) 10:35, 24 июня 2015 (UTC) [ reply ]
Мы уже проверяли этот источник и обнаружили, что в нем отсутствуют те подробности, которые, как вы предполагаете, он предоставляет. TEDickey ( обсуждение ) 23:18, 24 июня 2015 (UTC) [ ответить ]
Еще раз: не используйте majestatis pluralis и указывайте источники для своих утверждений. Schily ( talk ) 08:32, 25 июня 2015 (UTC) [ ответить ]
Ваш термин, похоже, не используется в такой форме часто (https://de.wikipedia.org/wiki/Pluralis_Majestatis). Дата изменения цитируемого файла — 2006 год; история изменений недоступна, поэтому любые ваши комментарии о возрасте данной функции не имеют поддержки из этого источника. Возможно, вы можете найти пригодный для использования источник, но это не так. В предыдущем обсуждении источника вы также сделали необоснованные заявления и не смогли подтвердить их какими-либо пригодными для использования источниками. Поэтому я делаю вывод, что у вас их нет. TEDickey ( talk ) 23:58, 25 июня 2015 (UTC) [ ответить ]
Вы, похоже, все еще не понимаете, как работают надежные источники. Надежные источники не обязательно должны быть доступны онлайн и для всех. Они просто должны быть доказуемы. У меня есть надежные источники, чтобы подтвердить мои заявления, и если вы придете сюда, чтобы встретиться со мной, я, конечно, смогу показать вам свои источники. Хотелось бы, чтобы у вас были надежные источники для различных заявлений, которые вы размещаете в Википедии. Schily ( talk ) 09:32, 26 июня 2015 (UTC) [ reply ]
Есть встроенное правило для GNU make, которое имеет прямое отношение к комментарию. Цитата из его Каталога встроенных правил:

Для удобства SCCS файл n копируется из n .sh и делается исполняемым (для всех). Это для скриптов оболочки, которые проверяются в SCCS. Поскольку RCS сохраняет разрешение на выполнение файла, вам не нужно использовать эту функцию с RCS.

Это может быть неприятно, если вы распространяете файл с именем install.sh , поэтому вы можете найти файлы с именем install-sh , например, этот используется в Lynx по причине, указанной в комментариях к скрипту. TEDickey ( talk ) 08:54, 24 июня 2015 (UTC) [ ответить ]
Похоже, что документация GNU make не обновлялась 29 лет: SCCS сохраняет исполняемый бит уже давно... ммм, похоже, это дольше, чем существует GNU make ;-) Schily ( обсуждение ) 10:06, 24 июня 2015 (UTC) [ ответ ]
Опять же, вы не указали источник для обсуждения, так что вы не сказали ничего ценного TEDickey ( обсуждение ) 23:18, 24 июня 2015 (UTC) [ ответить ]

Дата?

В статье Bourne shell говорится, что Bourne shell был выпущен в 1977 году, но в статье Thompson shell говорится, что Bourne shell был выпущен в 1979 году. Может ли кто-нибудь предоставить надежный источник, разрешающий этот вопрос? Редактор, который использует псевдоним " JamesBWatson " ( talk ) 16:29, 27 ноября 2015 (UTC) [ ответить ]

Стивен Борн утверждает, что он начал с оболочки в конце 1975 года и развернул первую версию в начале 1976 года. Затем некоторое время результат тестировался, обсуждался и модифицировался. Его список функций от 1977 года выглядит довольно полным. Schily ( talk ) 17:04, 27 ноября 2015 (UTC) [ ответить ]
Я полагаю, что может быть место для различных интерпретаций того, что означает «выпущено», поскольку если бы это постепенно развивалось в течение нескольких лет, это могло бы постепенно распространиться на более широкую аудиторию, а не было бы одной даты, когда это внезапно стало общедоступным. Однако источник, дающий более четкую информацию о том, когда это стало общедоступным, был бы приветствоваться. Редактор, использующий псевдоним « JamesBWatson » ( обсуждение ) 09:05, 28 ноября 2015 (UTC) [ ответить ]
Тогда «время выпуска» UNIX может быть намного позже, чем люди думают сегодня, например, Стивен Борн утверждает, что 1975 год был первым годом, когда UNIX использовался за пределами USG. Schily ( talk ) 17:36, 23 февраля 2016 (UTC) [ ответить ]
Retrieved from "https://en.wikipedia.org/w/index.php?title=Talk:Bourne_shell&oldid=1240981183"