Comment puis-je afficher l'erreur d'un do shell |
Bienvenue invité ( Connexion | Inscription )
Comment puis-je afficher l'erreur d'un do shell |
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. |
|
|
27 Jan 2016, 10:26
Message
#2
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 454 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
|
|
|
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. |
|
|
27 Jan 2016, 11:48
Message
#4
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 454 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
|
|
|
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. |
|
|
27 Jan 2016, 11:55
Message
#6
|
|
Terminaltor Moderating Machine Groupe : Admin Messages : 24 454 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
|
|
|
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 |
|
|
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 |
|
|
Nous sommes le : 25th September 2024 - 18:12 |