[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