Какой дистрибутив Linux напоминает HP-UX?

Как большинство других заметило, "-n" интерпретируется буквально, если помещено где угодно, но сразу после echo команда.

Исторически, утилиты UNIX были все как это - они искали опции только сразу после названия команды. Было вероятно или BSD или GNU, кто вел более гибкий стиль (хотя я мог быть неправым), поскольку даже сейчас POSIX указывает старый путь как корректный (см. Инструкцию 9, и также man 3 getopt в системе Linux). Так или иначе, даже при том, что большинство утилит Linux в эти дни использует новый стиль, существуют некоторые несогласные как echo.

Echo путаница, мудрая стандартами, в этом было по крайней мере две существенно конфликтующих версии в игре к тому времени, когда POSIX возник. С одной стороны, у Вас есть SYSV-стиль, который интерпретирует оставленные из обратной косой черты символы, но иначе рассматривает его аргументы буквально, не принимая опций. На другом у Вас есть BSD-стиль, который рассматривает начальную букву -n как особый случай и выводы абсолютно все остальное буквально. И с тех пор echo так удобно, у Вас есть тысячи сценариев оболочки, которые зависят от одного поведения или другого:

echo Usage: my_awesome_script '[-a]' '[-b]' '[-c]' '[-n]'
echo -a does a thing.
echo -b does something else.
echo -c makes sure -a works right.
echo -- DON\'T USE -n -- it\'s not finished! --

Из-за "обработки все буквально" семантическое, невозможно даже добавить новую опцию к echo не повреждая вещи. Если бы GNU использовал гибкую схему опций на нем, то ад вырвался бы на свободу.

Кстати, для лучшей совместимости между реализациями Оболочки Bourne, использовать printf вместо echo.

ОБНОВЛЕННЫЙ для объяснения, почему echo в особенности не использует гибкие опции.

2
14.07.2011, 23:33
1 ответ

Я боюсь, что никакой дистрибутив Linux не напоминает HP-UX (или AIX, Солярис в этом отношении) достаточно, чтобы быть полезным в Вашем случае.

В то время как весь Unix и Unix как Ose совместно используют подобный posix слой, существует существенное различие на стороне системного администрирования, которая является тем, о чем сертификация CSA, я предполагаю.

8
27.01.2020, 21:51
  • 1
    я буду второй это: HP-UX не напоминает ничто иное. Это - своего рода динозавр, у которого это все еще сделало, чтобы Bell Labs "сделала", и другие утилиты, не BSD или GNU. Это имеет много особенностей системного администратора, потому что HP имел плохой, тяжелый случай "Не Изобретенный Здесь". Это напоминает о старом Собственном Unixes, SunOS, Dynix, Hep/ux, Mt Xinu, DGUX, и т.д. и т.д. Кроме того, аппаратные средства PA-RISC, на которых работает HP-UX, действительно нечетны: это имеет регистры сегментов, стек растет, "куча" углубляется. Ickk. –  Bruce Ediger 15.07.2011, 02:27

Теги

Похожие вопросы