Нестандартное мышление: если то, что вы ищете, определяет версию ОС в скрипте, просто используйте uname -r
или uname -v
(это POSIX).Возможно, возникнут проблемы с регулярным выражением, поскольку у каждой ОС могут быть разные способы выражения своей версии.Производители ОС настолько изобретательны, что изобретают переходы версий вперед и назад, у некоторых есть буквы, и даже римские цифры не являются неслыханными (думаю, System V ).
См. http://pubs.opengroup.org/onlinepubs/9699919799/utilities/uname.html
Я использую в своем .profile фрагмент, подобный этому:
case "`uname -sr`" in
(*BSD*) OS=`uname -s`;;
(SunOS\ 4*) OS=SunOS;;
(SunOS\ 5*) OS=Solaris;;
(IRIX\ 5*) OS=IRIX;;
(HP*) OS=HP-UX;;
(Linux*) OS=Linux;;
(CYGWIN*) OS=Cygwin;;
(*) OS=generic
esac