IPB

Bienvenue invité ( Connexion | Inscription )

 
Reply to this topicStart new topic
> Comment puis-je afficher l'erreur d'un do shell
Options
Pierrot10
posté 27 Jan 2016, 08:23
Message #1


Adepte de Macbidouille
*

Groupe : Membres
Messages : 201
Inscrit : 19 Jan 2006
Lieu : Genève
Membre no 53 813



Bonjour,

J'utilise cette commande qui fonctionne bien
Code
do shell script "mount_smbfs //" & user_name & ":" & pass & "@" & server_name & ".domaine.ch/home/" & user_name & " /Volumes/" & server_name

sauf quand l'utilisateur entre un mauvais mot de passe.
Voici le message retourner
Citation
error "Erreur dans Finder : mount_smbfs: server rejected the connection: Authentication error" number 77


Comment es-ce que je peux recupérer cette erreur, ou "ecouter" ce que retourne le do-shell pour pouvoir afficher, à l'utilisateur, un message du genre
Citation
Erreur d'authentification, veuiller vérrifier votre mot de passes et nom d'utilisateur


Merci pour votre aide

Ce message a été modifié par Pierrot10 - 27 Jan 2016, 08:23.
Go to the top of the page
 
+Quote Post
schlum
posté 27 Jan 2016, 10:26
Message #2


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Juste après une commande shell, la variable $? contient le code d’erreur retourné (dans ce cas 77).


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Pierrot10
posté 27 Jan 2016, 11:10
Message #3


Adepte de Macbidouille
*

Groupe : Membres
Messages : 201
Inscrit : 19 Jan 2006
Lieu : Genève
Membre no 53 813



Salut schlum

Merci pour ta réponse.

Qu'entend tu par la variable $?

J'ai essayé ceci mais ca ne passe pas

Code
do shell script "mount_smbfs //" & user_name & ":" & pass & "@" & server_name & ".domaine.ch/home/" & user_name & " /Volumes/" & server_name
                            set myMntMess to $?
                            tell application "System Events"
                                display dialog MyMntMess default answer "" with icon caution buttons ["OK"] default button 1 with hidden answer
                            end tell


Ce message a été modifié par Pierrot10 - 27 Jan 2016, 11:21.
Go to the top of the page
 
+Quote Post
schlum
posté 27 Jan 2016, 11:48
Message #4


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



parce que tu n’es plus dans ton environnement script au moment où tu fais cet appel ; « do shell script » crée un environnement shell qui se termine quand la commande est finie.

En plus, $? est une variable shell, et pas AppleScript


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 27 Jan 2016, 11:51
Message #5


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



try
do shell script "cp azerty:qsd.jpg azerty:abc:"
on error errMsg number errNbr
error "Erreur d'authentification, veuiller vérrifier votre mot de passe et nom d'utilisateur" number 12345
end try



Yvan KOENIG running El Capitan 10.11.3 in French (VALLAURIS, France) mercredi 27 janvier 2016 11:50:47

Ce message a été modifié par KOENIG Yvan - 27 Jan 2016, 11:52.
Go to the top of the page
 
+Quote Post
schlum
posté 27 Jan 2016, 11:55
Message #6


Terminaltor
Moderating Machine
*****

Groupe : Admin
Messages : 24 449
Inscrit : 25 Oct 2002
Lieu : Jeumont (59)
Membre no 4 319



Si "do shell script" remonte l’erreur en tant qu’exception, c’est effectivement encore plus facile.


--------------------
          I think therefore I Mac          
Go to the top of the page
 
+Quote Post
Jaypee
posté 27 Jan 2016, 17:38
Message #7


Macbidouilleur d'Or !
*****

Groupe : Membres
Messages : 2 486
Inscrit : 29 Aug 2002
Membre no 3 340



Mais comme il y a un seul "handler" d'erreur, il faut faire des tests:

if the errorNumber is equal to 77 then
-- erreur en français pour cette erreur et conseil pour la corriger
else
-- Un test pour chaque valeur de code connue
if ...
else
if
...
else
-- Voiture balai pour les erreurs vraiment pas prévues.

end if

J-P
Go to the top of the page
 
+Quote Post
KOENIG Yvan
posté 29 Jan 2016, 17:20
Message #8


Macbidouilleur de vermeil !
****

Groupe : Membres
Messages : 989
Inscrit : 22 Aug 2002
Lieu : 06220 VALLAURIS
Membre no 3 217



Depuis l'introduction de 10.6 Apple demande de ne plus insérer de commandes d'OSAX dans des blocs tell application "trucmuche".
cf: https://developer.apple.com/library/mac/rel...00982-CH106-SW3

La question originelle fait état d'une référence au Finder dans le message d'erreur ce qui me laisse à penser que l'instruction qui pose problème est dans un bloc tell application "Finder" ce qui est incorrect.
Apple demande de sortir les instructions utilisant des commandes d'OSAX (ici Standard Additions) hors des blocs tell… ou de les faire précéder de tell me.

L'instruction devient alors :

tell me to do shell script "mount_smbfs //" & user_name & ":" & pass & "@" & server_name & ".domaine.ch/home/" & user_name & " /Volumes/" & server_name

Si vous tenez à identifier l'erreur retournée, il n'est pas nécessaire de s'encombrer avec les articles.

if errorNumber = 77 then
--
else if errorNumber = 69 then
--
else
-- voiture balai évoquée par ailleurs
end if


Yvan KOENIG running El Capitan 10.11.3 in French (VALLAURIS, France) vendredi 29 janvier 2016 17:16:19
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



Nous sommes le : 24th April 2024 - 06:52