0 votos

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

Estoy usando el siguiente código para configurar una bombilla Philips Hue con un tono, saturación y brillo específicos usando 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 aleatoria. Parece que debería insertar un número aleatorio para la configuración del 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 de la variableel?

Lo siguiente probablemente no sea necesario, pero lo incluiré por si le sirve a 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/"

1voto

Nate Puntos 220

Estás incrustando RandomNumA dentro de una cadena literal (con comillas dobles), por lo que se trata como parte del literal y no como una referencia a una variable. Para que se interprete como una variable, hay que hacer lo mismo que se hace en el do shell script al final -- utilice & para añadir un literal citado, una referencia a una variable y otro literal citado. En realidad, es un poco más complicado porque tienes que usar paréntesis para asegurarte de que todo el asunto quede quoted form of aplicada a ella:

set RandomNumA to (random number from 0 to 65535)

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

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