Determine y use la resolución como una variable en el script de UNIX en Mac

0

Estoy implementando una imagen de NetRestore en varios tipos de Mac: MacBooks, MacBook Pros, Mac Pros, iMacs y Mac Minis. Tengo varias pantallas de inicio de sesión de diseño personalizado que me gustaría usar, pero todo lo anterior a 10.10 requiere que se conozca la resolución del monitor, de lo contrario, el fondo de inicio de sesión no se mostrará correctamente.

¿Hay alguna forma de usar la salida de este código como variable para una serie de declaraciones IF / THEN?

system_profiler SPDisplaysDataType |grep Resolution

La salida normal se muestra como esta

  Resolution: 2560 x 1440
  Resolution: 1920 x 1200
  Resolution: 1920 x 1200

(Esto es si tiene tres monitores ... Prefiero usar el primer resultado).

Mi intención es que la secuencia de comandos se ejecute al vincular el Mac con Active Directory (que debe hacerse manualmente), por lo que la resolución ya debería estar disponible. Seleccionaría la imagen de resolución correcta y luego la copiaría en la ubicación requerida.

O por casualidad, ¿alguien tiene alguna buena idea sobre cómo crear fondos de ventana de inicio de sesión personalizados y fondos de usuario para trabajar en cualquier tipo de Mac con cualquier resolución? (Al igual que el sistema operativo cuando selecciona "Ajustar a la pantalla" en Preferencias del sistema)

¡Gracias!

    
pregunta ghostof101 25.02.2015 - 18:48

1 respuesta

1

Si está buscando algo para poner en un script de shell, puede ejecutar algo como

if [[ $(system_profiler SPDisplaysDataType |
             grep Resolution |
             head -1 |
             tr -d ' ') == 'Resolution:2560x1440' ]]; then
    # do whatever is needed to do for 2560x1440
end if

También puedes usar una declaración case para manejar varias resoluciones

case  $(system_profiler SPDisplaysDataType |
            grep Resolution |
            head -1 |
            tr -d ' ') in
    Resolution:2560x1440)
        # handle 2560x1440
        ...
        ;;
    Resolution:1920x1200)
        # handle 1920x1200
        ...
        ;;
esac
    
respondido por el nohillside 25.02.2015 - 18:57

Lea otras preguntas en las etiquetas