get-distro.sh 1014 B

12345678910111213141516171819202122232425262728293031
  1. #!/usr/bin/env bash
  2. ## This script prints Linux distro name and its version number
  3. ## e.g. macos, centos8, ubuntu20.04
  4. set -euo pipefail
  5. UNAME="$(uname -s)"
  6. case "$UNAME" in
  7. Darwin)
  8. DIST='macos'
  9. VERSION_ID=$(sw_vers | gsed -n '/^ProductVersion:/p' | gsed -r 's/ProductVersion:(.*)/\1/g' | gsed -r 's/([0-9]+).*/\1/g' | gsed 's/^[ \t]*//g')
  10. SYSTEM="$(echo "${DIST}${VERSION_ID}" | gsed -r 's/([a-zA-Z]*)-.*/\1/g')"
  11. ;;
  12. Linux)
  13. if grep -q -i 'centos' /etc/*-release; then
  14. DIST='centos'
  15. VERSION_ID="$(rpm --eval '%{centos_ver}')"
  16. else
  17. DIST="$(sed -n '/^ID=/p' /etc/os-release | sed -r 's/ID=(.*)/\1/g' | sed 's/"//g')"
  18. VERSION_ID="$(sed -n '/^VERSION_ID=/p' /etc/os-release | sed -r 's/VERSION_ID=(.*)/\1/g' | sed 's/"//g')"
  19. fi
  20. SYSTEM="$(echo "${DIST}${VERSION_ID}" | sed -r 's/([a-zA-Z]*)-.*/\1/g')"
  21. ;;
  22. CYGWIN*|MSYS*|MINGW*)
  23. SYSTEM="windows"
  24. ;;
  25. esac
  26. echo "$SYSTEM"