'/etc/debian_version', 'fedora' => '/etc/fedora-release', 'redhat' => '/etc/redhat-release' ); if (!array_key_exists($argv[1], $files)) { exit(1); } if ($argv[1] === 'freebsd') { echo getFreebsdVersion(); exit(0); } $func = $argv[1] === 'debian' ? 'getDebianVersion' : 'getRedhatVersion'; $func($files[$argv[1]]); function getFreebsdVersion() { preg_match("/^FreeBSD ([0-9]+\.*[0-9]*).+$/i", shell_exec('uname -v'), $matches); return isset($matches[1]) ? (int) $matches[1] : 0; } function getRedhatVersion($file) { preg_match("/[a-zA-Z]+ release ([0-9].*) .+/", @file_get_contents($file), $matches); return isset($matches[1]) ? (int) $matches[1] : 0; } function getDebianVersion($file) { $v = @file_get_contents($file); return $v === false ? 0 : $v; }