Applescript e Shell: come inserisco una variabile?

0

Sto usando il seguente codice per impostare una lampadina Philips Hue con tonalità, saturazione e luminosità specifiche utilizzando Applescript. Funziona perfettamente.

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

Vorrei aggiungere un'opzione a colori casuali. Sembra che dovrebbe inserire un numero casuale per l'impostazione della tonalità, ma invece inserisce il nome della variabile:

set RandomNumA to (random number from 0 to 65535)

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

Come inserisco il numero generato della variabile al posto del nome del variablel?

Il seguente probabilmente non è necessario, ma lo includerò nel caso sia utile a qualcuno. È il codice che completa quanto sopra per accendere una lampadina:

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

1 risposta

1

Stai incorporando RandomNumA all'interno di una stringa letterale (a virgolette), quindi viene trattata come parte del letterale piuttosto che come riferimento di variabile. Per interpretarlo come una variabile, devi fare la stessa cosa che fai nel comando do shell script alla fine - usa & per aggiungere un letterale quotato, un riferimento di variabile e un altro letterale quotato. In realtà, è leggermente più complicato perché devi usare le parentesi per assicurarti che l'intera cosa venga applicata 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}")
    
risposta data 08.02.2015 - 22:35
fonte

Leggi altre domande sui tag