Разделить семантический номер версии с помощью zsh

С выпуском macOS 10.15 Catalina оболочка по умолчанию будет переключена с bash в zsh, Просматривая некоторые сценарии и документацию, я понял, что необходимо внести изменения в расширение параметров.

Следуя запросу bash regex, чтобы соответствовать семантическому номеру версии, мне нужно было обновить мой метод сбора семантических номеров версий.

В zshКак я могу разделить семантические номера версий с помощью расширения параметров?

1 ответ

Используя мой предыдущий ответ в качестве шаблона, я смог преобразовать свой код в расширение zsh.

product_version=$(sw_vers -productVersion) # 10.14.6
os_vers=( ${(@s:.:)product_version} ) # ( 10 14 6 )
os_vers_major="${os_vers[1]}" # 10
os_vers_minor="${os_vers[2]}" # 14
os_vers_patch="${os_vers[3]}" # 6
os_vers_build=$(sw_vers -buildVersion) #18G87
echo "${os_vers_major}.${os_vers_minor}.${os_vers_patch}+${os_vers_build}" # 10.14.6+18G87

Обратите внимание, что (по умолчанию) массивы zsh начинаются с индекса 1 не 0

Другие вопросы по тегам