2012-03-28 12 views

Respuesta

4

Desea el comando sw_vers en OS X. Imprime algunas cadenas legibles por el ser humano, incluida la versión del sistema 10.X.X (sw_vers -productVersion). También puede usar uname para verificar la versión del kernel; si su script se transporta alguna vez a otras variantes de Unix, uname funcionará allí.

+0

gracias. probaré esto –

5

OS_VERSION (completo ... ejemplo 10.7.3)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' 

O

sw_vers -productVersion 

OS (corto ... ejemplo 10,7)

system_profiler SPSoftwareDataType | grep "System Version" | awk '{print $6}' | sed "s:.[[:digit:]]*.$::g" 

O

OS_Version=$(OS (short… example 10.7) | sed "s:.[[:digit:]]*) 

bash:

#!/bin/bash 

# Use one of the examples given above to create the OS_Version variable 

if [[ ${OS_Version} == 10.7.3 ]]; then 
    echo "Operating System is a match... will continue on." 
else 
    echo "Operating System is NOT a match... will NOT continue." 
fi 
+0

Gracias por la solución y la sugerencia. – E1Suave

+1

Tuve que usar $ 5 en lugar de $ 6. – funroll

+0

'sw_vers -productVersion' debería ser la primera respuesta. Tanto por la experiencia como por la lectura de los comentarios, evita tener que preocuparse por '$ 5' frente a' $ 6' y es más escalable – tresf

1

Si sólo necesita comprobar la versión principal del sistema operativo, tenga en cuenta la versión de Darwin corresponde a él, y dentro de fiesta se establece en una variable de shell que es fácil forzar a un entero numéricamente comparable.

if [[ ${OSTYPE:6} -ge 13 ]]; then 
    echo "At least 10.9, so feeling fine."; 
else 
    echo "Time to put the old cat to sleep."; 
fi 
Cuestiones relacionadas