5 votos

¿Cómo puedo determinar el nivel de batería de mi ratón mágico desde la línea de comandos?

Sé cómo conseguirlo a través de la barra de menús, pero ¿cómo puedo conseguirlo a través de la línea de comandos?

6voto

Oskar Puntos 1242

Utilice ioreg y buscar la batería con grep

Desde ioreg es realmente verboso - aquí hay un comando que se reduce a los nombres de los dispositivos bluetooth y todos los porcentajes de batería para cada uno.

ioreg -l |egrep "BatteryPercent|Bluetooth Product Name"

3voto

BobK77 Puntos 29

Aprovechando la útil respuesta de bmike [Jul 30 '17] ... con una forma de reducir aún más las repeticiones de los nombres de los dispositivos: añadir (a) el símbolo del quilate (^) para significar el inicio de la línea, y (b) la barra vertical escapada precedida y seguida por un número específico de espacios:

 ioreg -r -l -n AppleHSBluetoothDevice | egrep '"BatteryPercent" = |^  \|   "Bluetooth Product Name" = '

Esos filtros dieron este resultado:

     |   "Bluetooth Product Name" = "Magic Keyboard with Numeric Keypad"
     |   |       "BatteryPercent" = 59
     |   "Bluetooth Product Name" = "Magic Mouse 2"
     |   |       "BatteryPercent" = 98

Al filtrar más con sed y hacer eco de la variable me dio el resultado que buscaba

    BATTLVL=$(ioreg -r -l -n AppleHSBluetoothDevice | egrep '"BatteryPercent" = |^  \|   "Bluetooth Product Name" = '| sed 's/  |   "Bluetooth Product Name" = "Magic Mouse 2"/  \|  Mouse:/' | sed 's/  |   "Bluetooth Product Name" = "Magic Keyboard with Numeric Keypad"/  \|  Keyboard:/'| sed 's/  |   |       "BatteryPercent" = / /'); echo $BATTLVL 

El resultado en consola:

     | Mouse: 96 | Keyboard: 71

Pero, cuando fui a poner todo en un archivo bash script, me encontré con que mientras BATTLVL efectivamente contiene sólo las palabras y frases deseadas para ser reportadas, también contiene caracteres de nueva línea - pero, no aparecen cuando el comando ECHO se anexa al comando anterior con un punto y coma.

Así pues, para poder seguir utilizando los resultados del informe, eliminamos las nuevas líneas utilizando las técnicas sugeridas en este Correo electrónico: :

    BATTRPT=${BATTLVL//[$'\t\r\n']};  # Strips all instances of tab, newline, return.

Finalmente, para añadir una notificación en OS X del nivel de batería del ratón y del teclado desde el bash script, encontré necesario construir primero la cadena script en una variable, y luego canalizarla a osascript para que las comillas dobles fueran incluidas en la cadena.

    theScript=$"display notification \"$BATTRPT\" "
    echo $theScript | osascript

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X