Какие оболочки не поддерживают расширение в виде круглых скобок и требуют запятых?


8

Современная рекомендация заключается в использовании:

$(...)

вместо старшего:

`...`

главным образом для удобочитаемости и избежания необходимости экранирования при вложении.

Какие оболочки не поддерживают $(...)форму, и используются ли они до сих пор?



В нем говорится: «Единственная причина использования обратных галочек - это совместимость с реальной оболочкой Bourne (например, с фамильной фамилией)».
joeytwiddle

1
Одним из важных моментов является то, что все поддерживаемые Unix-подобные системы после 90-х будут иметь команду под названием, shкоторая будет поддерживаться в правильной среде $(...).
Стефан Шазелас

Ответы:


8

Оригинальная оболочка Bourne, csh или tcsh, все не поддерживают $()и требуют `` замены команд.

Оболочка Bourne больше не используется в качестве оболочки по умолчанию (/ bin / sh) во многих операционных системах на основе UNIX. Однако эти оболочки все еще поставляются поставщиками ОС, поскольку они все еще используются по историческим причинам.

И AIX, и HP-UX имеют / bin / sh в качестве POSIX-совместимой оболочки. Оболочка Bourne по-прежнему доступна в AIX как 'bsh' (но не рекомендуется в 1995 году с AIX 4.1) и HP-UX 11.11 '/ usr / old / bin / sh' (Bourne был удален из 11.23). Я не уверен, когда был сделан переход, но это было много лет назад.


5

Solaris 10 и более ранних /bin/shверсий не поддерживает $().

Он все еще используется сегодня, потому что Solaris 10 все еще используется, Sun не хотела заменять его стандартной соответствующей версией (вплоть до Solaris 10 включительно), и потому что большинство людей считают /bin/shоболочку по умолчанию и не знают как переносить выполнение сценария с помощью соответствующей оболочки POSIX .

Мотивация Sun не изменяться /bin/shсостояла в том, чтобы не нарушать существующие сценарии оболочки, которые полагаются на несоответствующее поведение.


2
@cuonglm, да, я только что проверил и могу это подтвердить. Можно было бы подумать, что скорее выйдет Херд, чем Sun / Oracle меняет свою политику на /bin/sh...
maxschlepzig
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.