Questo è uno  script di bash  che, quando viene eseguito, senza un argomento, pianifica il sistema in modo che si attivi in 20 minuti e lo mette immediatamente in stato di sospensione. Oppure puoi fornire, come argomento, il numero di minuti in cui vuoi che dorma prima che riattivi il sistema. Sfortunatamente l'utilità della riga di comando OS X   pmset   , che esegue la funzione di riattivazione e sospensione, richiede privilegi elevati. Il comando deve essere eseguito utilizzando   sudo    come mostrato nell'output di esempio di seguito. 
 Nell'esempio seguente, lo  script  è stato salvato come   sleepwake    e quindi in Terminale reso eseguibile utilizzando   chmod u+x sleepwake   , quindi eseguito come   sleepwake    per mostrare il messaggio di guida interno. (Nota: la directory di lavoro corrente in cui mi trovo si trova nel mio   $PATH   . Consulta gli esempi Nota :, più avanti, per ulteriori informazioni.) 
$ sleepwake
  This script must be run as root using sudo.
  Syntax:  sudo sleepwake [n]
  Example: sudo sleepwake 10
  Wakes the system 10 minutes after going to sleep.
  Example: sudo sleepwake
  Wakes the system, using the default, 20 minutes after going to sleep.
$  
  Creazione di   sleepwake   :  
 In un terminale, digita quanto segue, premendo Invio dopo ciascun comando: 
touch sleepwake
open sleepwake
 Copia e incolla il  codice  sotto nel documento aperto, vuoto, 
  Codice:  
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
   printf "\n  This script must be run as root using sudo.\n\n"
   printf "  Syntax:  sudo sleepwake [n]\n  Example: sudo sleepwake 10\n"
   printf "  Wakes the system 10 minutes after going to sleep.\n\n"
   printf "  Example: sudo sleepwake\n"
   printf "  Wakes the system, using the default, 20 minutes after going to sleep.\n\n"
   exit 1
else
            # If no argument (number of minutes) was passed.
    if [[ -z $1 ]]; then
            # Default number of minutes to sleep.
        m="20"
    else
            # Number of minutes to sleep given from command line.
        m="$1"
    fi
        # Do the math and set date time format to
        # what 'pmset schedule wake' requires.
    e="$(date -j -f "%a %b %d %T %Z %Y" "$(date)" "+%s")"
    ((o=60*$m))
    ((e+=o))
    t="$(date -r $e "+%m/%d/%Y %H:%M:%S")"
        # Schedule the 'wake' date time and sleep the system.
    pmset schedule wake "$t"
    pmset sleepnow
        # Revoke elevated privileges from this Terminal session.
    sudo -k
fi
 Ora salva il documento, quindi chiudilo. 
 In Terminale, crea l'eseguibile  script bash : 
chmod u+x sleepwake
 Esegui il comando   sleepwake    senza utilizzare   sudo   , per vedere che viene visualizzata la guida interna. 
 Quindi verificalo per un minuto con il seguente comando: 
sudo sleepwake 1
 Inserisci la password quando richiesto e premi Invio. 
 Il sistema ora dormirà per un minuto. 
  Esempi Nota:  gli esempi presuppongono che   sleep wake    venga salvato in una directory che si trova in   $PATH   , altrimenti in caso contrario e si trova nella directory corrente, quindi usa   sudo ./sleepwake    o no nella directory   $PATH    o corrente, quindi utilizza   sudo /path/to/sleepwake   . 
  
Noteaggiuntive:
Ilcommentodi#Dothemath...nelloscriptsignificacheilbloccodicodicedirettamentesottodiessoconvertelaoracorrenteinsecondidaEpoch,inmododaaggiungereilnumerodisecondiinminutidisospensioneallacorrentedata/ora,quindiriconvertirliperavereunadata/oranelformatorichiestodapmsetschedulewakeequestasaràladata/oraxnumerodiminutidaora,essendoladata/oradiesecuzione,haincrementatoi20minutipredefinitioilnumerodiminutipassaticomeargomentosullarigadicomando.Wow!:)
Unavoltaprogrammataladata/oraperriattivareilsistema,èpossibilesvegliarloprimadelprevistoseènecessarioaccederealsistemaprimadellasvegliadataoraconisolitimezzi,facendoclicconilmouseousandolatastiera,ecc.
Perulterioriinformazionisupmset,vedicheè uomo pagina .