Я пишу сценарий bash, используя простые операции с массивами, такие как:testarray=("First Name" "Second Name" "Third Name") ; for i in "${testarray[@]}" ; do echo "$i" ; done

Какой номер версии bash пришел с этой оригинальной версией? 10.4.11 показывает мне более или менее 2.05b.0(1)-release, copyright 2002.

Я протестировал его на MacOS 10.4.11 и, увидев версию 2.05b, я немного испугался, потому что она очень старая даже для 10.4.11 ... 10.4.0 - это, вероятно, sub 2.0. Мой сценарий обратно совместим с 10.4.0?

Кто-то здесь, вероятно, бросит его в виртуальную машину PPP или что-то. Это не обязательно должно быть точно 10.4.0, но чем ближе, тем лучше. Я не могу сказать, правильна ли документация Apple, но она имеет точный номер версии на онлайн-страницах руководства :)

2 ответа2

2

У меня нет удобной системы 10.4.0; вы согласитесь на 10.3.9? Он поставляется с версией bash 2.05b.0(1), поэтому я думаю, что вы в безопасности.

Изменить: я нашел некоторые из моих старых заметок, и, если они правильные, версия OS X версии 10.2.8 поставляется с версией bash 2.05a.0(1)-релиз. Так что они уже некоторое время используют bash v2 ...

О, и я проверил ваш код массива на 10.3.9, и он работал как ожидалось.

2

Вы можете обратиться к www.opensource.apple.com, чтобы изучить компоненты с открытым исходным кодом, используемые в различных выпусках Mac OS X.

10,4 (.0) включены «Баш-44,2»; его файл CHANGES указывает, что это 2.05b.

10.4.11 на x86 и 10.4.11 на PPC оба включали «bash-44.5»; ИЗМЕНЕНИЯ говорят, что это 2.05b.

Различия в коде между Apple bash-44.2 и -44.5 очень минимальны: добавили volatile к одной переменной и немного изменили обработку SIGWINCH.

Далее 10,2 (.0) включали «Баш-23»; ИЗМЕНЕНИЯ говорит, что это 2.05a.

Bash не указан как компонент 10.1 или 10.0.

Похоже (согласно NEWS) массивы были представлены как новая функция в bash-2.0, так что похоже, что вы в безопасности, по крайней мере, до Mac OS X 10.2.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .