У меня есть POSIX-совместимый установочный скрипт, который определяет последнюю версию какого-либо программного обеспечения путем извлечения информации из BLOB-объекта json, полученного из реестра программного обеспечения:
meta=$(wget -qO - https://registry.npmjs.org/after-dark/latest)
grep --version | grep "BSD grep" 1>/dev/null && vers=$(echo "$meta" | grep -oE '"version":(\d*?,|.*?[^\\]",)' | tr -d 'version": ,')
grep --version | grep "GNU grep" 1>/dev/null && vers=$(echo "$meta" | grep -oP '"version":(\d*?,|.*?[^\\]",)' | tr -d 'version": ,')
Мне нужно сделать это программное обеспечение совместимым с BusyBox, который, как и BSD grep, использует -E
для расширенной поддержки регулярных выражений. Однако он не поддерживает флаг --version
.
Если я запускаю busybox grep
я вижу версию busybox. Должен ли я просто использовать это, чтобы добавить совместимость? Есть ли лучший способ, которым я мог бы сделать это, чтобы удалить запах кода без установки зависимостей.