Determinare e utilizzare la risoluzione come variabile nello script UNIX su Mac

0

Sto distribuendo un'immagine NetRestore a diversi tipi di Mac: MacBook, MacBook Pro, Mac Pro, iMac e Mac Minis. Ho diverse schermate di accesso progettate su misura che vorrei utilizzare, ma prima di 10.10 è necessario conoscere la risoluzione del monitor, altrimenti lo sfondo di accesso non verrà visualizzato correttamente.

Esiste un modo per utilizzare l'output di questo codice come variabile per una serie di istruzioni IF / THEN?

system_profiler SPDisplaysDataType |grep Resolution

L'output normale viene mostrato in questo modo

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

(Questo è se hai tre monitor ... Preferirei usare il primo risultato).

La mia intenzione è che lo script venga eseguito collegando il Mac ad Active Directory (che deve essere fatto manualmente), quindi la risoluzione dovrebbe già essere disponibile. Dovrebbe selezionare l'immagine di risoluzione corretta e quindi copiarla nella posizione richiesta.

O per caso qualcuno ha qualche idea su come creare sfondi finestra di login personalizzati e sfondi utente per lavorare su qualsiasi tipo di Mac con qualsiasi risoluzione? (Proprio come fa il sistema operativo quando selezioni "Adatta allo schermo" in Preferenze di Sistema)

Grazie!

    
posta ghostof101 25.02.2015 - 18:48
fonte

1 risposta

1

Se stai cercando qualcosa da inserire in uno script di shell, puoi eseguire qualcosa come

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

Potresti anche utilizzare un'istruzione case per gestire diverse risoluzioni

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

Leggi altre domande sui tag