[Comm] sh - bash
Alexey Rusakov
=?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eorg?=
Вс Окт 15 02:27:46 MSD 2006
Artem Zolochevskiy пишет:
> hi all
>
> Просветите
>
> На пакет sh и bash описание одно и то же.
> Всё, что я когда-то уяснил, это то, что сперва был sh (который чего-то там
> не умел) а затем стал bash, который сейчас повсеместно и используется и
> чего-то там умеет, чего не умел sh
>
> Собственно вопрос относительно написания скриптов
> Отчего же тогда вижу везде #!/bin/sh (в стартовых сценариях итп) - если этот
> sh такой старый и неумека?
>
> Ну и, если можно, пример можете привести где употребление
> #!/bin/sh или #!/bin/bash может сказаться на работоспособности скрипта.
> Т.е. какая такая фича может быть в скрипте, что при использовании #!/bin/sh
> он работать не будет.
>
Насколько я понимаю, ситуация такая: вначале был Bourne shell, он же sh.
sh есть на всех UNIX-системах, кроме тех, на которых используется Korn
shell (ksh, соответственно). На Linux оригинальный sh если и есть, то
встречается редко; вместо него используется Bourne Again shell (bash),
который умеет в точности воспроизводить поведение предка. В современных
системах sh - это тот же bash, но работающий в режиме совместимости с sh.
Отличия работы bash в режиме совместимости лучше всего почитать в man
bash, основное отличие - в режиме совместимости bash строго следует
POSIX (м-да, о том, что это значит, тоже лучше читать в man bash). Ну в
общем, я думаю, вы поняли, какое сокращение я избегаю здесь употребить :)
--
Alexey "Ktirf" Rusakov
Подробная информация о списке рассылки community