En lugar de pasar por la tubería a grep
y cut
, sólo tiene que utilizar awk
.
do shell script "ioreg -r -k AppleClamshellState | awk -F \" = \" '/AppleClamshellState/ {print $2}'"
-F \" = \"
hace el separador: =
(espacio = espacio)
/AppleClamshellState/
Busca: AppleClamshellState
{print $2}
Imprime Sí o No dependiendo de lo que se devuelva: AppleClamshellState
- Por ejemplo
"AppleClamshellState" = No
imprime No
También puedes usar:
do shell script "ioreg -r -k AppleClamshellState | grep 'AppleClamshellState' | cut -d'=' -f2"
Sin embargo, habrá un espacio de dirección frente a Sí o No como cut
sólo maneja un único carácter para el eliminador.
Nota: El texto del comando parte de do shell script
Por ejemplo do shell script "uptime"
debe ir entre comillas. Así, cuando el cadena de texto del comando está utilizando comillas dobles dentro de la cadena se debe sustituir por una comilla simple '
siempre que sea posible y si hay que utilizar comillas dobles dentro de la cadena y luego escapar de ellos con una barra invertida \
.
0 votos
He actualizado mi respuesta para utilizar
grep
ycut
sin embargo yo me quedaría conawk
¡!0 votos
Véase la nota que aparece al final de mi respuesta para aclarar los problemas de citación que rodean a los comandos complejos utilizados con
do shell script
.