Comment exécuter des commandes Terminal à partir d'un script sous macOS

Pour exécuter des commandes Terminal depuis un script sous macOS, placez-les dans un script shell en texte brut, rendez-le exécutable, puis lancez-le depuis le Finder ou le Terminal. Utilisez une .commandextension pour l'ouvrir d'un double-clic. Un script ne contourne pas les contrôles de confidentialité de macOS et n'octroie aucun privilège d'administrateur.

Une fenêtre d'éditeur de texte brut affichant un shebang zsh et une commande echo dans MyScript.command.
Un court script shell commence par un shebang qui sélectionne zsh.

1. Écrivez les commandes dans un fichier texte brut

Un script shell est un fichier texte contenant des commandes. Il commence par un shebang , la première ligne qui indique à macOS quel shell doit interpréter le fichier. Le shell par défaut actuel pour les nouvelles fenêtres Terminal est zsh, mais un administrateur peut en définir un autre, comme l'explique Apple dans son guide Terminal . Cet exemple utilise explicitement zsh :

#!/bin/zsh
# Print a message when the script runs
echo "Script is running"

Placez les commandes sur des lignes distinctes après le shebang. Le shebang détermine l'interpréteur ; utilisez donc la syntaxe qu'il prend en charge. Un script Bash, par exemple, peut commencer par `bash` . Le guide des scripts shell#!/bin/bash d'Apple explique les bases.

Vous pouvez utiliser TextEdit, mais assurez-vous que le fichier est au format texte brut : les nouveaux documents TextEdit peuvent être au format texte enrichi. Choisissez Format > Convertir en texte brut , ou définissez le format des nouveaux documents TextEdit sur Texte brut dans ses paramètres. La mise en forme en texte enrichi n'est pas du code shell. Apple documente ces options dans son guide TextEdit . Un éditeur de code ou un éditeur de ligne de commande peut nanoégalement convenir.

Une boîte de dialogue d'enregistrement macOS avec MyScript.command sélectionné comme fichier texte brut sur le Bureau.
Enregistrez le script avec l'extension .command dans un emplacement facile à retrouver.

2. Enregistrez-le avec une .commandextension

Enregistrez le fichier texte brut sous un nom descriptif, par exemple ` MyScript.command.script.txt`. L'extension `.script.txt` permet au Finder d'ouvrir le script dans le Terminal lorsque vous double-cliquez dessus. La documentation développeur archivée d'Apple décrit ce processus de double-clic pour les scripts shell. Vérifiez le nom final dans le Finder : s'il se termine par `.script.txt` .command.txt, renommez-le pour que l'extension finale soit uniquement `.script.txt` .command. Conservez l'exemple dans un emplacement tel que votre Bureau pendant sa configuration.

Si macOS vous demande quelle extension utiliser, conservez-la .commandet vérifiez que Finder ne l'a pas ajoutée .txt.

3. Rendre le script exécutable

Ouvrez le Terminal et autorisez votre compte à exécuter le fichier. Pour l'exemple enregistré sur le Bureau, saisissez :

chmod u+x "$HOME/Desktop/MyScript.command"

Appuyez sur Entrée. u+xCela ajoute l'autorisation d'exécution au propriétaire ; les guillemets protègent les chemins contenant des espaces. Remplacez le chemin d'exemple si nécessaire. Faites glisser le fichier dans Terminal ou utilisez le menu contextuel (Option + clic) du Finder pour copier son chemin. Apple présente la même méthode dans ses instructions relatives aux fichiers exécutables .

Une fenêtre de terminal affichant la commande chmod u+x appliquée au fichier MyScript.command du bureau.
La commande chmod ajoute la permission d'exécution au propriétaire du fichier.

4. Exécutez le script

Double-cliquez dessus MyScript.commanddans le Finder pour l'exécuter dans le Terminal. La sortie et les erreurs s'y afficheront. Vous pouvez également saisir son chemin complet :

"$HOME/Desktop/MyScript.command"

Ou bien, accédez d'abord au dossier, puis préfixez le nom de fichier avec ./:

cd "$HOME/Desktop"
./MyScript.command

Cette ./commande indique à l'interpréteur de commandes d'exécuter un fichier situé dans le répertoire courant. Le guide des commandes du Terminal d'Apple explique comment exécuter un fichier à partir de son chemin d'accès.

Une fenêtre de terminal exécutant MyScript.command et affichant la sortie « Le script est en cours d'exécution ».
Exécutez le fichier en utilisant son chemin d'accès et vérifiez le résultat dans le Terminal.

Dépannage des erreurs courantes

  • « Permission refusée » : vérifiez que vous avez exécuté chmod u+xla commande sur le bon fichier. Si nécessaire, répétez-la en utilisant le chemin d'accès exact du fichier. Rendre un fichier exécutable n'autorise pas l'exécution de toutes les commandes qu'il contient.
  • « Fichier ou répertoire introuvable » : vérifiez l’emplacement et l’orthographe, y compris l’extension. Un fichier enregistré par erreur MyScript.command.txtne correspondra pas à la commande ci-dessus. Glisser-déposer le fichier dans le Terminal peut faciliter l’insertion de son chemin d’accès.
  • Une commande fonctionne lorsqu'elle est saisie manuellement, mais pas dans le script : ce dernier peut utiliser un autre interpréteur de commandes ou s'appuyer sur des alias, des variables d'environnement ou un répertoire de travail de votre session de terminal interactive. Utilisez le shebang approprié, évitez de vous fier aux alias et spécifiez explicitement les chemins d'accès aux fichiers. Si les commandes nécessitent un dossier particulier, ajoutez une cdligne correspondante au début du script.

Comprenez les autorisations avant de partager

Le droit d'exécution est indépendant des autorisations de confidentialité. Un script s'exécute généralement avec vos droits d'administrateur ; utilisez-le sudouniquement pour les commandes nécessitant des privilèges d'administrateur.

macOS peut demander l'accès à des dossiers protégés ou à d'autres applications. Examinez chaque demande et n'autorisez que ce qui est nécessaire. Consultez le menu Pomme > Réglages Système > Confidentialité et sécurité pour accéder à Fichiers et dossiers et aux paramètres de confidentialité associés . Les autorisations dépendent de l'accès demandé et de l'application requérante ; il ne s'agit pas d'autorisations générales par commande et elles ne sont pas transmises par un script partagé.

Avant d'exécuter ou de partager un script, lisez attentivement chaque ligne et assurez-vous de bien comprendre son effet. Un .commandfichier est pratique car il s'exécute dès son ouverture ; par conséquent, n'utilisez que des fichiers provenant de sources fiables.

Laisser un commentaire

Comment empêcher la réorganisation des espaces de travail sur macOS

Comment empêcher la réorganisation des espaces de travail sur macOS

Gardez vos bureaux Mac dans un ordre prévisible en désactivant le tri de l'espace de travail par date dans Mission Control, avec des étapes et des conseils pour changer d'application.

Comment afficher les autorisations des applications sur macOS

Comment afficher les autorisations des applications sur macOS

Vérifiez dans Confidentialité et sécurité quelles applications Mac peuvent utiliser votre caméra, votre microphone, votre position, vos photos, vos fichiers et autres fonctionnalités protégées, et comprenez ce que la liste omet.

Comment regrouper des fichiers dans un dossier dans le Finder sur macOS

Comment regrouper des fichiers dans un dossier dans le Finder sur macOS

Regroupez un dossier du Finder par type, date, taille ou étiquettes, conservez son affichage lorsque vous le rouvrez et évitez de modifier les paramètres par défaut des autres dossiers.

Comment régler le volume d'un périphérique audio à sorties multiples sous macOS

Comment régler le volume d'un périphérique audio à sorties multiples sous macOS

Découvrez comment gérer le volume d'un périphérique audio multi-sorties sous macOS en ajustant chaque sortie dans Configuration audio et MIDI ou en utilisant ses commandes matérielles.

Comment régler la luminosité d'un écran externe sous macOS

Comment régler la luminosité d'un écran externe sous macOS

Réglez un moniteur externe depuis macOS Displays, ses commandes intégrées ou un utilitaire DDC/CI tel que MonitorControl, et résolvez les problèmes liés aux commandes de luminosité manquantes.

Comment redimensionner les icônes du bureau sous macOS

Comment redimensionner les icônes du bureau sous macOS

Facilitez la consultation des fichiers sur votre Mac. Ajustez la taille des icônes, le texte des étiquettes et l'espacement de la grille dans le Finder sans modifier les icônes du Dock ni la résolution de l'écran.

Comment exécuter des commandes Terminal à partir d'un script sous macOS

Comment exécuter des commandes Terminal à partir d'un script sous macOS

Enregistrez les commandes répétitives du Terminal macOS dans un script .command en texte brut, rendez-le exécutable, exécutez-le depuis le Finder ou le Terminal et résolvez les problèmes d'autorisation courants.

Comment effectuer une capture d'écran programmée depuis le Terminal sur macOS

Comment effectuer une capture d'écran programmée depuis le Terminal sur macOS

Définissez un délai personnalisé pour une capture d'écran programmée depuis le Terminal sur macOS, puis choisissez son nom de fichier, son dossier d'enregistrement, son format d'image et les paramètres du pointeur.

Comment obtenir une barre de menus de style Catalina sur macOS Big Sur

Comment obtenir une barre de menus de style Catalina sur macOS Big Sur

Restaurez une barre de menus de style Catalina sur Big Sur grâce à la version compatible de Boring Old Menu Bar v1.27. Suivez les étapes d'installation, configurez les styles clair et sombre et résolvez les problèmes courants.

Comment masquer son Mac aux autres appareils d'un réseau

Comment masquer son Mac aux autres appareils d'un réseau

Désactivez les services de partage Mac et activez le mode furtif du pare-feu pour limiter la découverte locale, en indiquant clairement ce que votre routeur et vos autres appareils peuvent encore voir.