Isso parece fazer o truque para mim:
# cat test.sh
#!/bin/bash
case $( dmidecode | grep -A4 "BIOS Information" | fgrep "Address:" | awk '{print $2}' ) in
"0xE8480" ) echo "ESX 2.5" ;;
"0xE7C70" ) echo "ESX 3.0" ;;
"0xE7910" ) echo "ESX 3.5" ;;
"0xE7910" ) echo "ESX 4" ;;
"0xEA550" ) echo "ESX 4U1" ;;
"0xEA2E0" ) echo "ESX 4.1" ;;
"0xE72C0" ) echo "ESX 5" ;;
"0xE9AB0" ) echo "ESX 5.1" ;;
"0xEA0C0" ) echo "ESX 5.1 (older)" ;;
"0xEA050" ) echo "ESX 5.5" ;;
"0xE9A40" ) echo "ESX 6.0" ;;
* ) echo "Unknown version for address:"
dmidecode | grep -A4 "BIOS Information" | fgrep "Address:" | awk '{print $2}'
;;
esac
Exemplo de saída:
# ./test.sh
ESX 5.1
Note que eu testei isso apenas no centos 6.xe 7.
EDIT: adicionado ESX 5.5, 6.0 e uma versão mais antiga do 5.1. fonte