Pour vérifier si un script shell a réussi dans un raccourci Mac, récupérez son code de sortie immédiatement après son exécution et renvoyez ce nombre sous forme de texte. Dans Raccourcis, ajoutez l’action Exécuter un script Shell, puis utilisez une action Si pour créer une condition sur la valeur renvoyée : 0 signifie un succès selon la convention shell ; une valeur non nulle indique une erreur ou un autre résultat infructueux. Cette méthode rend le statut explicite plutôt que de supposer que le raccourci expose une variable de statut distincte.

Ajouter une action shell et récupérer le statut

Ouvrez le raccourci dans l’application Raccourcis sur votre Mac. Recherchez Exécuter un script Shell dans la bibliothèque d’actions et ajoutez-la. Apple décrit les actions de script shell comme faisant partie de l’écosystème Raccourcis sur Mac, bien que le guide de l’utilisateur de Raccourcis ne documente pas chaque paramètre ou détail de version pour cette action. Si elle est absente de votre bibliothèque d’actions, ne la remplacez pas par l’action au nom similaire d’Automator en supposant qu’elle se comporte de manière identique ; vérifiez les actions disponibles sur votre Mac. Aperçu de Raccourcis par Apple

Dans le champ du script, placez la commande du script sur une ligne, puis capturez $? sur la ligne suivante. Par exemple, si le script est exécutable et situé au chemin indicatif ci-dessous :

/Users/yourname/Scripts/refresh-files.sh >/dev/null
script_status=$?
printf '%s' "$script_status"

Remplacez l’exemple de chemin par le chemin réel de votre script. La redirection envoie la sortie standard du script vers /dev/null, de sorte que la sortie texte de l’action ne contienne que le numéro de statut. Supprimez >/dev/null si vous souhaitez également obtenir la sortie du script, mais le texte renvoyé pourra alors inclure à la fois cette sortie et le statut. L’erreur standard n’est pas masquée par cette redirection.

$? contient le code de sortie de la commande terminée la plus récente. C’est pourquoi l’assignation doit intervenir directement après l’appel du script : si une autre commande s’exécute d’abord, $? décrira cette dernière à la place. printf émet ensuite le nombre enregistré sous forme de texte, que Raccourcis peut utiliser comme sortie d’action. Guide Apple sur les processus de script shell sur Mac

Créer une condition selon le nombre renvoyé

Ajoutez une action Si après Exécuter un script Shell. Définissez son entrée sur la sortie de l’action shell, choisissez la condition de texte est, et saisissez 0. Placez les actions en cas de succès sous Si et toute gestion des échecs sous Sinon. L’action Si de Raccourcis sur Mac oriente le contenu vers l’un des deux chemins en fonction de la condition que vous configurez. Guide Apple sur les actions Si dans Raccourcis sur Mac

Traitez le résultat comme du texte, car l’action shell l’affiche ainsi. Une exécution réussie doit renvoyer 0 ; un résultat non nul doit emprunter l’autre branche. Vous pouvez placer une action Afficher l’alerte dans la branche d’échec et inclure la valeur du statut dans son message, ou transmettre la valeur à une action ultérieure à des fins de journalisation. Les scripts shell utilisent souvent différentes valeurs non nulles pour distinguer les causes d’échec ; conserver ce nombre peut donc faciliter le diagnostic.

Éviter les erreurs courantes lors de la vérification du statut

Ne placez pas echo $? dans une action ultérieure en espérant qu’elle fasse référence au processus shell précédent. Chaque action shell démarre sa propre exécution de commande ; $? n’a de sens qu’au sein de la même session shell et immédiatement après la commande dont vous souhaitez obtenir le statut. De même, afficher un statut avant l’exécution du script n’affichera que le résultat de ce qui s’est exécuté auparavant.

Si le script exécute plusieurs commandes, son code de sortie final peut dépendre de la façon dont le script est rédigé. Par exemple, une commande ultérieure réussie peut masquer un échec antérieur, à moins que le script ne propage ou ne gère délibérément cet échec. Le raccourci ne peut faire une condition que sur le statut que le script renvoie en fin de compte. Examinez la gestion des erreurs du script lui-même si le résultat ne reflète pas l’étape qui vous intéresse.

Lorsque vous exécutez un raccourci depuis le Terminal

Si votre objectif est de vérifier si l’ensemble du raccourci s’est exécuté avec succès depuis le Terminal, Apple documente une commande shortcuts distincte : shortcuts run "Shortcut Name". Cette commande renvoie 0 lorsque l’exécution du raccourci réussit et 1 en cas d’erreur. Il s’agit du statut de l’appel du raccourci, et non d’une variable dédiée contenant le code de sortie de l’action shell interne. Pour utiliser le statut propre au script dans une branche de raccourci, capturez-le et affichez-le à l’intérieur de l’action shell comme décrit ci-dessus. Guide Apple sur la ligne de commande pour Raccourcis sur Mac

La méthode pratique est simple : exécutez le script, enregistrez $? immédiatement, affichez cette valeur enregistrée et comparez le texte obtenu avec 0 dans une action Si. Cela offre au raccourci Mac un chemin clair vers le succès et un vers l’échec, tout en liant la décision au résultat de sortie effectif du script.

Sources