Applescript y Shell: ¿cómo inserto una variable?

0

Estoy usando el siguiente código para configurar una bombilla Philips Hue con matiz, saturación y brillo específicos utilizando Applescript. Funciona perfectamente.

   set TurnOnBulbA to the quoted form of "{\"on\": true,\"hue\": 65535, \"sat\": 240,\"bri\": 90}"

Me gustaría añadir una opción de color al azar. Esto parece que debería insertar un número aleatorio para la configuración de tono, pero en su lugar, inserta el nombre de la variable:

set RandomNumA to (random number from 0 to 65535)

set TurnOnBulbA to the quoted form of "{\"on\": true,\"hue\": RandomNumA, \"sat\": 240,\"bri\": 90}"

¿Cómo inserto el número generado de la variable en lugar del nombre del variablel?

Probablemente lo siguiente no sea necesario, pero lo incluiré en caso de que sea útil para alguien. Es el código que completa lo anterior para encender una bombilla:

do shell script "curl --request PUT --data " & TurnOnBulbA & " http://myIPaddress/api/myhueID/lights/1/state/"
    
pregunta 2oh1 08.02.2015 - 21:43

1 respuesta

1

Está incrustando RandomNumA dentro de una cadena literal (doble comilla), por lo que se trata como parte de la referencia literal en lugar de como una variable. Para interpretarlo como una variable, debe hacer lo mismo que hace en el comando do shell script al final: use & para agregar un literal entre comillas, una referencia de variable y otro literal entre comillas. En realidad, es un poco más complicado porque tienes que usar paréntesis para asegurarte de que todo se aplique a quoted form of :

set RandomNumA to (random number from 0 to 65535)

set TurnOnBulbA to the quoted form of ("{\"on\": true,\"hue\": " & RandomNumA & ", \"sat\": 240,\"bri\": 90}")
    
respondido por el Gordon Davisson 08.02.2015 - 22:35

Lea otras preguntas en las etiquetas