2016-06-05 11 views
-1

Как и sed, есть команды оболочки, которые не ведут себя одинаково в той же оболочке.Причина, по которой команда оболочки ведет себя по-разному в зависимости от ОС

Поведение их по-разному зависит от ОС (* BSD или GNU/Linux), а не от оболочки, хотя они оболочки команд. Интересно. Может ли кто-нибудь объяснить, почему сценарии оболочки не ведут себя одинаково на нескольких платформах?

+0

BSD и GNU имеют похожие двоичные файлы, но не идентичны. –

+0

да, я это знаю. – tsrrhhh

ответ

0

Различные системы в определенной степени развили свои собственные инструменты и синтаксис. Linux использует GNU toolchain, который поддерживает множество современных опций. Однако есть одна вещь, которая имеет у Linux и BSD (и многих других операционных систем): POSIX.

Это POSIX specification for sed. Вы можете полагаться на них, работая на всех платформах * nix. Обычно есть способ сделать все, что вы пытаетесь сделать, таким образом, чтобы работать со всеми версиями sed.

Вы также найдете то же несоответствие между awk и gawk.

+0

Спасибо за ответ (я не знал POSIX.). Итак, есть ли это различие, метафорически, как разница между Microsoft Word на Mac и Windows? – tsrrhhh

+0

В значительной степени, кроме Microsoft, оба этих и разные группы разработчиков создают соответствующие версии 'sed' и' awk'. Единственное, что действительно связывает их вместе, это POSIX. Вероятно, вы обнаружите, что опции * BSD для 'sed' и' awk' с большей вероятностью будут работать с GNU/Linux, чем с GNU/Linux, которые должны работать с BSD. – Will

+0

спасибо! очень понятно. Отныне я могу рассмотреть отца самостоятельно благодаря вашему комментарию. – tsrrhhh