OVH Cloud OVH Cloud

[AppleScript/Shell] passer des varaibles entre les deux.

4 réponses
Avatar
nospam
Salut,

J'ai un problème avec du bon vieux shell script et de l'applescript.

J'ai tout d'abord un shell qui calcul deux valeurs. Ces valeurs doivent
être transmise à un AppleScript (sans doute un AppleScript Studio), pour
qu'un humain face à une interface vérifie/modifie les valeurs.

Une fois ces valeurs validées, elles doivent être passées à un autre
shell script qui va faire le vrai boulot.

Comment puis-je passer les valeurs de ces variables dans un sens et dans
l'autre ?

Merci d'avance.

Jacques

4 réponses

Avatar
Patrick Stadelmann
In article <1g1aox7.d3nhzd1mktc7uN%,
(Jacques Foucry) wrote:

J'ai tout d'abord un shell qui calcul deux valeurs. Ces valeurs doivent
être transmise à un AppleScript (sans doute un AppleScript Studio), pour
qu'un humain face à une interface vérifie/modifie les valeurs.


Si l'application AS contient une variables gloable v1, on peut modifier
sa valeur depuis un shell avec :

osascript -e 'set v1 of application "Mon Appli" to 12345'

Une fois ces valeurs validées, elles doivent être passées à un autre
shell script qui va faire le vrai boulot.


Depuis AppleScript :

do shell script "/bin/monscript " & (v1 as text) & " " & (v1 as text)

revient à exécuter : /bin/monscript 12345 12345

Patrick
--
Patrick Stadelmann

Avatar
nospam
Patrick Stadelmann wrote:

Si l'application AS contient une variables gloable v1, on peut modifier
sa valeur depuis un shell avec :


Donc, à la fin de mon premier script, j'exporte mes variables et le tour
est jouer, si j'ai bien compris.

osascript -e 'set v1 of application "Mon Appli" to 12345'

do shell script "/bin/monscript " & (v1 as text) & " " & (v1 as text)

revient à exécuter : /bin/monscript 12345 12345


Impécable. Merci beaucoup.

--
Jacques

Avatar
Patrick Stadelmann
In article <1g1bggr.16kvkazpnmcN%,
(Jacques Foucry) wrote:

Patrick Stadelmann wrote:

Si l'application AS contient une variables gloable v1, on peut modifier
sa valeur depuis un shell avec :


Donc, à la fin de mon premier script, j'exporte mes variables et le tour
est jouer, si j'ai bien compris.


Hum... en fait, il y a un problème si la valeur est stockée dans une
variable :

osascript -e 'set v1 of application "Mon Appli" to $ma_var'

ne passe pas, vu que le shell ne remplace pas $ma_var. Un pro du shell
réussirait sans doute à jongler avec les ', " et autre ` pour que ça
passe, mais je n'y étais pas parvenu.

Vérification faite, le truc que j'avais employé est de mettre la valeur
dans une variable d'environnement et de la récupérer avec "system
attribute" :

setenv MVR $ma_var
osascript -e 'set v1 of application "Appli" to (system attribute "MVR")'


osascript -e 'set v1 of application "Mon Appli" to 12345'

do shell script "/bin/monscript " & (v1 as text) & " " & (v1 as text)

revient à exécuter : /bin/monscript 12345 12345


Impécable. Merci beaucoup.


Juste une précision, "do shell script" lance son propre shell, qui n'est
pas configuré comme le shell standard de l'utilisateur. Pour les
détails, voir cette technote :

http://developer.apple.com/technotes/tn2002/tn2065.html

Patrick
--
Patrick Stadelmann


Avatar
nospam
Patrick Stadelmann wrote:

Juste une précision, "do shell script" lance son propre shell, qui n'est
pas configuré comme le shell standard de l'utilisateur. Pour les
détails, voir cette technote :


Merci pour tout, je me pencherais dessus après la semaine de
FOOOOOOOOOOOOOOOOOOOLLIE qui arrive.

--
Jacques