OVH Cloud OVH Cloud

[osascript] code de retour ?

2 réponses
Avatar
Nicolas.MICHEL
Bonjour

Dans un script shell, je voudrais lancer une commande osascript

( en l'occurence :
/usr/bin/osascript -e "tell application \"Finder\" to open location \
\"smb://$CurentUser@$ToMountShare\" ")

comment faire pour attendre le résultat de la commande avant de
continuer, en tenant compte du code de retour ?

Mille merci d'avance :)

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas

2 réponses

Avatar
Patrick Stadelmann
In article <1gulqhb.ys5d2e1l6nw5cN%,
(Nicolas MICHEL) wrote:

Dans un script shell, je voudrais lancer une commande osascript

( en l'occurence :
/usr/bin/osascript -e "tell application "Finder" to open location
"smb://$CurentUser@$ToMountShare" ")


Tu peux éviter le " en écrivant :

osascript -e 'tell application "Finder" ...'

En l'occurence, "open location" est une commande des "standard
additions", donc tu peux même écrire :

osascript -e 'open location "..."'

comment faire pour attendre le résultat de la commande avant de
continuer, en tenant compte du code de retour ?


La commande "open location" ne renvoie rien et n'attend pas la fin de
l'exécution avant de redonner le contrôle. Techniquement, elle ne fait
qu'invoquer une application en fonction du protocole utilisé (le Finder
en l'occurrence), et donc dès que l'appli en question reçoit l'URL, son
job est terminé.

AMHA, t'as intérêt a monter le serveur directement depuis le shell.

Patrick
--
Patrick Stadelmann

Avatar
Nicolas.MICHEL
Patrick Stadelmann wrote:

In article <1gulqhb.ys5d2e1l6nw5cN%,
(Nicolas MICHEL) wrote:

Dans un script shell, je voudrais lancer une commande osascript

( en l'occurence :
/usr/bin/osascript -e "tell application "Finder" to open location
"smb://$CurentUser@$ToMountShare" ")


Tu peux éviter le " en écrivant :

osascript -e 'tell application "Finder" ...'


Euh, j'ai des variables dans la commande, donc non :-)

En l'occurence, "open location" est une commande des "standard
additions", donc tu peux même écrire :

osascript -e 'open location "..."'


Ah oui, ça je peux faire, c'est facile.

comment faire pour attendre le résultat de la commande avant de
continuer, en tenant compte du code de retour ?


La commande "open location" ne renvoie rien et n'attend pas la fin de
l'exécution avant de redonner le contrôle. Techniquement, elle ne fait
qu'invoquer une application en fonction du protocole utilisé (le Finder
en l'occurrence), et donc dès que l'appli en question reçoit l'URL, son
job est terminé.


Ok, c'est très clair.

AMHA, t'as intérêt a monter le serveur directement depuis le shell.


Oui, peut-être.
En fait j'avais laissé tomber le mount du shell parce que je voulais
l'exécuter via un cron job. Or il se trouve que tu n'as accès au ticket
kerberos si ton appli n'est pas un fils de loginwindows.

A présent j'ai changé mon script, il n'est plus exécuté par un cron job
mais est lancé par un loginhook et tourne en permanence. Donc je pourais
en effêt revenir à un mount du shell.

En tout cas merci Patrick :)

--
S'il n'y a pas de solutions, c'est qu'il n'y a pas de problèmes
iChat/AIM : michelnicolas