Error al usar "do shell script"

2

Estoy usando un MacBook Pro (Retina, mediados de 2014) con El Capitán. Estoy intentando crear un script que comprueba si mi computadora está abierta o no, y estoy usando esto:

ioreg -r -k AppleClamshellState | grep '"AppleClamshellState"' | cut -f2 -d"=""

Probé esto en Terminal y funciona bien, así que agrego do shell script delante para ejecutarlo en AppleScript. Pero cuando lo hago, me da esto:

Expected end of line, etc. but found identifier.

¡Por favor ayuda!

    
pregunta atirit 03.03.2016 - 02:56

1 respuesta

0

En lugar de canalizar a grep y cut , solo usa awk .

do shell script "ioreg -r -k AppleClamshellState | awk -F \" = \" '/AppleClamshellState/ {print $2}'"
  • -F \" = \" hace que el separador: = (espacio = espacio)
  • /AppleClamshellState/ Buscar por: AppleClamshellState
  • {print $2} imprime o No según lo que se devuelva para: AppleClamshellState
  • E.g "AppleClamshellState" = No imprime No

Tambiénpuedesusar:

doshellscript"ioreg -r -k AppleClamshellState | grep 'AppleClamshellState' | cut -d'=' -f2"

Sin embargo, habrá un espacio inicial delante de o No , ya que cut solo maneja un solo carácter para el eliminador.

Nota:lapartedecomandodetextodedoshellscript,porejemplo.doshellscript"uptime" debe estar entre comillas dobles. Por lo tanto, cuando la cadena de texto del comando utiliza comillas dobles dentro de la cadena , debe sustituirse por comillas simples ' siempre que sea posible y si se deben usar comillas dobles dentro de la cadena luego escápalos con una barra invertida \ .

    
respondido por el user3439894 03.03.2016 - 03:24

Lea otras preguntas en las etiquetas